php合并数据合并
A. php 两个数组合并成为一个二维数组
PHP 中的 array_merge_recursive() 函数可以实现
将一个或多个数组的元素的合并起来,一个数组中的值附加在前一个数组的后面。并返回作为结果的数组。
当有重复的键名时,值不会被覆盖,而是将多个相同键名的值递归组成一个数组。
array_merge_recursive(array1,array2,array3...)
参数说明
array1 必需。输入的第一个数组。
array2 必需。输入的第二个数组。
array3 可选。可指定的多个输入数组。
例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge_recursive($a1,$a2));
?>
输出:
Array (
[a] => Horse
[b] => Array ( [0] => Dog [1] => Cat )
[c] => Cow
)
注:array_merge() 函数也可以实现,与 array_merge_recursive()函数不同是,如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。
B. php合并数组并保留键值的实现方法
php合并数组,一般会使用array_merge方法。
array_merge
—
合并一个或多个数组
array
array_merge
(
array
$array1
[,
array
$...
]
)
array_merge
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面,返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
例子1,数组使用字符串键名,相同的键名会被后面的覆盖
<?php
$arr1
=
array('name'=>'fdipzone');
$arr2
=
array('name'=>'terry');
$result
=
array_merge($arr1,
$arr2);
print_r($result);
?>
输出:
Array
(
[name]
=>
terry
)
例子2,数组使用数字键名,键名相同不会覆盖,且键名会重新索引
<?php
$arr1
=
array(0=>'fdipzone',1=>'terry');
$arr2
=
array(0=>'php',1=>'python');
$result
=
array_merge($arr1,
$arr2);
print_r($result);
?>
输出:
Array
(
[0]
=>
fdipzone
[1]
=>
terry
[2]
=>
php
[3]
=>
python
)
因工作需要,需要将调查问卷的两部分选择题的答案合并一起,每部分答案为数组(key=>value),key为题号,value为答案,且两部分的题号不存在重复。
使用array_merge合并两部分答案
<?php
$form_data1
=
array(11=>'A',12=>'B',13=>'C',14=>'D');
$form_data2
=
array(25=>'B',26=>'A',27=>'D',28=>'C');
$result
=
array_merge($form_data1,
$form_data2);
print_r($result);
?>
输出:
Array
(
[0]
=>
A
[1]
=>
B
[2]
=>
C
[3]
=>
D
[4]
=>
B
[5]
=>
A
[6]
=>
D
[7]
=>
C
)
使用array_merge合并,因为题号(key)是数字,所以键名会重新索引,导致题号不能保留。
合并数组并保留键值的方法:
<?php
$form_data1
=
array(11=>'A',12=>'B',13=>'C',14=>'D');
$form_data2
=
array(25=>'B',26=>'A',27=>'D',28=>'C');
$result
=
$form_data1
+
$form_data2;
print_r($result);
?>
输出:
Array
(
[11]
=>
A
[12]
=>
B
[13]
=>
C
[14]
=>
D
[25]
=>
B
[26]
=>
A
[27]
=>
D
[28]
=>
C
)
使用
“+”
运算符合并数组,可以保留数组的键值,如果合并的数组中含有相同的键值,后面的不会覆盖前面的键值(前面的优先)。
以上这篇php合并数组并保留键值的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:php数组实现根据某个键值将相同键值合并生成新二维数组的方法PHP合并数组的2种方法小结PHP中数组合并的两种方法及区别介绍
C. PHP合并数组的几种方法
PHP 中的 array_merge()、array_merge_recursive()函数可以实现
array_merge() 函数把两个或多个数组合并为一个数组。
如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。
注意:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。
array_merge(array1,array2,array3...)
参数说明
array1 必需。输入的第一个数组。
array2 必需。输入的第二个数组。
array3 可选。可指定的多个输入数组。
例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
?>
输出:
Array ( [a] => Horse [b] => Cat [c] => Cow )
仅使用一个数组参数:
<?php
$a=array(3=>"Horse",4=>"Dog");
print_r(array_merge($a));
?>
输出:
Array ( [0] => Horse [1] => Dog )
array_merge_recursive() 函数与array_merge()函数不同的是,当有重复的键名时,值不会被覆盖,而是将多个相同键名的值递归组成一个数组。
例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge_recursive($a1,$a2));
?>
输出:
Array (
[a] => Horse
[b] => Array ( [0] => Dog [1] => Cat )
[c] => Cow
)
D. php 两个数组怎么合并成一个
arrayarray_merge(array$array1[,array$...])
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
如果你想完全保留原有数组并只想新的数组附加到后面,用 + 运算符:
<?php
$array1=array(0=>'zero_a',2=>'two_a',3=>'three_a');
$array2=array(1=>'one_b',3=>'three_b',4=>'four_b');
$result=$array1+$array2;
var_mp($result);
?>
E. php合并一个或多个数组
array_merge
(PHP 4, PHP 5, PHP 7)
array_merge — 合并一个或多个数组
1.说明
array_merge ([ array $... ] ) : array
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将 不会 覆盖原来的值,而是附加到后面。
如果输入的数组存在以数字作为索引的内容,则这项内容的键名会以连续方式重新索引。
2.参数
...
要合并的数组。
返回值
返回合并后的结果数组。如果参数为空,则返回空 array。
更新日志
版本 说明
7.4.0 允许不带参数调用,之前版本至少需要一个参数。
3.范例
示例 #1 array_merge() 示例
"red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
F. php 怎么控制表格,相同数据合并显示一行
摘要 您好,下面由我为您解决您的疑虑,希望可以帮助到您。
G. thinkphp中两条数据有相同的内容,如何将他们合并成一条数据
1. 在用mysql查询的时候,用group by (某一个字段) 将其查询结果合并;
或者;
2. 查询条件用limit 1 限制查询结果条数,反正内容一样,你就要一条即可;
H. php数组合并array_merge()函数使用注意事项
1.array_merge()合并
例子
代码如下
$array
=
array('a'=>'bb');
$array2
=
array('b'=>'cc');
$array3
=
array_merge($array,$array2);
输出结果为
Array
(
[a]
=>
bb
[b]
=>
cc
)
上面因为都是数组就没有问题了,假如我们把$array
设置不是数组看看什么情况
代码如下
$array
=
1;//array('a'=>'bb');
$array2
=
array('b'=>'cc');
$array3
=
array_merge($array,$array2);
print_r(
$array3
);
运行后结果
Warning:
array_merge()
[function.array-merge]:
Argument
#1
is
not
an
array
in
E:test1.php
on
line
4
告诉我们必须是要一个数组了,那么这个我就有多种方法来解决,
1.使用is_array()
进行判断了,但是会发现如果合并数组比较多一个个判断不合理,后来发现可以转换数据类型
代码如下
$array
=
1;//array('a'=>'bb');
$array2
=
array('b'=>'cc');
$array3
=
array_merge((array)$array,(array)$array2);
print_r(
$array3
);
输出结果不报错了
Array
(
[0]
=>
1
[b]
=>
cc
)
他自动把数字1转换成了数组了,所以大家在使用时一定要注意这些细节哦。
I. php遍历出数据后如何合并
如果是数组[1,2,3,4,5] 想变成字符串 1,2,3,4,5 可以直接使用join(',',$array) 或者 implode(',',$array) ; 如果想把字符串变成数组 可以使用explode(',',$str) 切割成数组