php两个数组合并成一个
❶ 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);
?>
❷ php下将多个数组合并成一个数组的方法与实例代码
1.合并数组
array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:
复制代码
代码如下:
array
array_merge
(array
array1
array2…,arrayN)
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
实例如下:
复制代码
代码如下:
$face
=
array("J","Q","K","A");
$numbered
=
array("2","3","4","5","6","7","8","9");
$cards
=
array_merge($face,
$numbered);
shuffle($cards);
print_r($cards);
这将返回如下所示的结果,运行代码:
复制代码
代码如下:
Array
(
[0]
=>
A
[1]
=>
4
[2]
=>
9
[3]
=>
3
[4]
=>
K
[5]
=>
7
[6]
=>
5
[7]
=>
Q
[8]
=>
6
[9]
=>
8
[10]
=>
2
[11]
=>
J
)
2.递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
复制代码
代码如下:
$class1
=
array("John"
=>
100,
"James"
=>
85);
$class2
=
array("Micky"
=>
78,
"John"
=>
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
这将返回如下结果:
view
sourceprint?Array
(
[John]
=>
Array
(
[0]
=>
100
[1]
=>
45
)
[James]
=>
85
[Micky]
=>
78
)
3.连接两个数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,两个输入数组必须大小相同,不能为空。示例如下:
复制代码
代码如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
这会返回:
复制代码
代码如下:
Array
(
[AL]
=>
Alabama
[AK]
=>
Alaska
[AZ]
=>
Arizona
[AR]
=>
Arkansas
)
❸ php两个数组合并问题
$arr1=array(1,1,2,2,6);
$arr2=array(4,6,1,7,3);
$result=array();
foreach($arr1as$k=>$v){
if(!array_key_exists($v,$result))$result[$v]=array();
array_push($result[$v],$arr2[$k]);
}
❹ php对比两个数组,合并两个数组为一个数组
$arrdata = array_merge_recursive($arr,$arr2);
var_mp($arrdata);
该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
注释:如果您仅仅向 array_merge_recursive() 函数输入一个数组,结果与 array_merge() 相同,函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。
❺ php两个相关的多维数组怎么合并成一个数组
如果是两个数组是相对应的,可以使用以下方法:
<?php
//数组1(gc_class):
$gc_class=array(
0=>array('gc_id'=>1,'gc_name'=>'分类1','gc_title'=>'111111'),
1=>array('gc_id'=>2,'gc_name'=>'分类2','gc_title'=>'2222')
);
//数组2(acticity):
$acticity=array(
'0'=>array('activity_id'=>1,'gc_class'=>1,'activity_name'=>'分类1下面的活动'),
'1'=>array('activity_id'=>2,'gc_class'=>2,'activity_name'=>'分类2下面的活动')
);
$arrs=array();
foreach($gc_classas$key=>$_gc_class){
$arrs[$key]=array_merge($_gc_class,$acticity[$key]);
}
print_r($arrs);
exit;
❻ 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);
?>
❼ php 两个普通数组合并为一个普通数组
php两个普通数组合并为一个普通数组可以参考下面的代码:
<?php
$a=array(1,2,3,4,5);
$b=array(6,7,8,9,10);
$c=array_merge($a,$b);
print_r($c);
?>
注:当被合并的数组中有一个数组为空时,可能会出现合并后的数组也为空。
(7)php两个数组合并成一个扩展阅读:
PHP常用函数
printf()函数输出格式化的字符串。
print()函数输出一个或多个字符串。
parse_str()函数把查询字符串解析到变量中。
ord() 函数返回字符串第一个字符的 ASCII 值。
number_format()函数通过千位分组来格式化数字。
nl2br()函数在字符串中的每个新行 ( ) 之前插入 HTML 换行符 (<br />)。
nl_langinfo()函数返回指定的本地信息。
❽ 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()函数不同是,如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。
❾ php数组合并两个数组(一个数组做键名,另一个做值) **key名字可以重复
php将两个键名和键值的数组元素合并为一个数组
你好,有两个方法可以实现:
一:
$arry_a=array(0,1,2);
$arry_b=array('dongsir','董先生','董先生的CSDN博客');
$arry_ab=[];
foreach($arry_bas$key=>$value){
$arry_ab[$arry_a[$key]]=$value;
}
echo"<pre>";
print_r($arry_ab);
输出
Array
(
[0]=>dongsir
[1]=>董先生
[2]=>董先生的CSDN博客
)
第二个方法:
php将两个键名和键值的数组元素合并为一个数组
Array
(
[a]=>dongsir,董先生
[c]=>董先生的CSDN博客
)