php相同数据数组合并 array_merge_recursive-php函数
2014-09-10来源:易贤网

昨天是数组合并,今天依旧是数组合并,今天是昨天array_merge的延伸,昨天的如果遇到相同的数据,则出现覆盖情况

本次将的是array_merge_recursive不会覆盖,会形成新的数组。

看语法

$newarray = array_merge_recursive($array1,$array2.....);

英文merge 合并的意思,recursive是递归的意思

特殊的情况与array_merge不同之处说明一下

1.不会覆盖相同的内容,相同的内容会以相同的key存储为数组

2.会递归深层次的数组,在以往的函数中不会递归,该函数是递归的

看例子学习php数组相同数据合并array_merge_recursive

例子1:有索引的数组的合并

<?php

$array = array("forasp"=>".cn","key"=>"1","temp"=>2);

$array1 = array("forasp"=>"www.forasp.cn","key"=>1,"temp"=>3);

$forasp = array_merge_recursive($array,$array1);

print_r($forasp);

?>

结果

Array

(

[forasp] => Array

(

[0] => .cn

[1] => www.forasp.cn

)

[key] => Array

(

[0] => 1

[1] => 1

)

[temp] => Array

(

[0] => 2

[1] => 3

)

)

?>

这里注意一点,进行相同key的合并,可以看出来相同key以及内容形成了数组

例子2 无索引数组与有索引数组

<?php

$array= array("site","域名","www.forasp.cn");

$array1 = array("forasp"=>"www.forasp.cn","key"=>1,"temp"=>3);

$forasp = array_merge_recursive($array,$array1);

print_r($forasp);

?>

输出结果:

Array

(

[0] => site

[1] => 域名

[2] => www.forasp.cn

[forasp] => www.forasp.cn

[key] => 1

[temp] => 3

)

无索引的,看来数组合并array_merge_recursive进行比较了key

例子3 当有一维数组

<?php

$array1= array("site","域名","forasp.cn");

$array2=array("site","forasp.cn");

$forasp = array_merge_recursive($array1,$array2);

print_r($forasp);

?>

输出结果

Array

(

[0] => site

[1] => 域名

[2] => forasp.cn

[3] => site

[4] => forasp.cn

)

看来 array_merge_recursive是针对于有索引数组的,如果无索引同样的value不能形成数组

更多信息请查看IT技术专栏

2026公务员·事业单位培训课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息