php有数组合并函数,挺好用的,数组合并函数为array_merge
看语法
$newarray = array_merge($array1,$array2.....);
英文merge 合并的意思。
说明一下
1.数组合并的参数$array1 ...可以是一个,可以是多个,如果是一个数组则是要重新排序,如果是数字索引将从0到n重新排列
如果是key索引,则有重复采用2覆盖
如果是多个数组则表示合并
2.对于相同的key值,最后的value值将覆盖前面的value
3.如果想保存原来的索引,采用加法的形式传递数组即可。$newarr=$oldarr1+$oldarr2;
需要注意的一点:
看例子学习php数组差异比较array_diff
例子1:有索引的数组的合并
<?php
$array = array("forasp"=>".cn","key"=>"1","temp"=>2);
$array1 = array("forasp"=>"www.forasp.cn","key"=>1,"temp"=>3);
$forasp = array_merge($array,$array1);
print_r($forasp);
?>
输出结果
Array
Array
(
[forasp] => www.forasp.cn
[key] => 1
[temp] => 3
)
这里注意一点,进行相同key的合并
例子2 无索引数组
<?php
$old1forasp = array("site","域名","www.forasp.cn");
$arrayforasp = array("site","forasp.cn",);
$forasp = array_merge($old1forasp,$arrayforasp);
print_r($forasp);
?>
输出结果:
Array
(
[0] => site
[1] => 域名
[2] => www.forasp.cn
[3] => site
[4] => forasp.cn
)
无索引的,将value逐个列出,并进行数字索引
例子3 当有二维数组合并,看其返回值
<?php
$oldforasp = array("site","域名","forasp.cn");
$array = array();
$arrayforasp1=array("site",$oldforasp);
$arrayforasp2=array("域名",$array);
$forasp = array_merge($arrayforasp1,$arrayforasp2);
print_r($forasp);
?>
输出结果
Array
(
[0] => site
[1] => Array
(
[0] => site
[1] => 域名
[2] => forasp.cn
)
[2] => 域名
[3] => Array
(
)
)
<?php
$oldforasp = array("site","域名","forasp.cn");
$array = array();
$arrayforasp1=array("site",$oldforasp);
$arrayforasp2=array("域名",$array);
$forasp = array_merge($arrayforasp1,$arrayforasp2);
print_r($forasp);
?>
二维数组中,如果数组不同,则不合并,就算数组中的值相同也不合并
例子3 看跳索引合并
<?php
$arr = array(1=>"a",3=>"b");
$temp = array_merge($arr);
print_r($temp);
?>
结果
Array
(
[0] => a
[1] => b
)
数字索引重新排列。
这就是数组合并。
例子4 在看一下+ 的效果
<?php
$arr = array(1=>"a",3=>"b");
$arr1 = array(2=>"c");
$new = $arr+$arr1;
print_r($arr);
?>
结果
Array
(
[1] => a
[3] => b
[2] => c
)
位置是顺序的,但是索引还是原来的~
更多信息请查看IT技术专栏