PHP合并数组+号和array_merge的区别

前端技术 2023/09/08 PHP

PHP的数组融合一般有两种做法,一种是直接使用加号相加,另一种则是使用array_merge函数进行相加,两者之间有点区别:

1.相加会证数组中的自然index不被重置
2.相加方法中,被加的数组内的值不会被覆盖
3.merge函数中的自然index会被重置
4.merge函数,无所谓被merge和merge关系,越后面的array参数,其值,会覆盖较前面的array参数相同键的值

例子:

数组1:

$arr1 = array(
  10 => \'valueof10\',
  11 => \'valueof11\',
  \'key1\' => \'dataofkey1\',
  \'key2\' => \'dataofkey2\',
  \'array\' => array(
    \'key1\' => 1,
    \'key2\' => \'abc\',
    \'key3\' => array(
      1, 2, \'name\' => \'peter\'
    ),
  ),
);

数组2:

$arr2 = array(
  10 => \'newvalueof10\',
  11 => \'newvalueof11\',
  \'key1\' => \'newdataofkey1\',
  \'key3\' => \'newdataofkey3\',
  \'array\' => array(
    \'key1\' => 2,
    \'key2\' => \'defg\',
    \'key3\' => array(
      1, 2, \'name\' => \'jonathan\', \'gender\' => \'male\'
    ),
  ),
);

结果比较:

array (size=6)
 10 => string \'valueof10\' (length=9)
 11 => string \'valueof11\' (length=9)
 \'key1\' => string \'dataofkey1\' (length=10)
 \'key2\' => string \'dataofkey2\' (length=10)
 \'array\' => 
  array (size=3)
   \'key1\' => int 1
   \'key2\' => string \'abc\' (length=3)
   \'key3\' => 
    array (size=3)
     0 => int 1
     1 => int 2
     \'name\' => string \'peter\' (length=5)
 \'key3\' => string \'newdataofkey3\' (length=13)
 
array (size=8)
 0 => string \'valueof10\' (length=9)
 1 => string \'valueof11\' (length=9)
 \'key1\' => string \'newdataofkey1\' (length=13)
 \'key2\' => string \'dataofkey2\' (length=10)
 \'array\' => 
  array (size=3)
   \'key1\' => int 2
   \'key2\' => string \'defg\' (length=4)
   \'key3\' => 
    array (size=4)
     0 => int 1
     1 => int 2
     \'name\' => string \'jonathan\' (length=8)
     \'gender\' => string \'male\' (length=4)
 2 => string \'newvalueof10\' (length=12)
 3 => string \'newvalueof11\' (length=12)
 \'key3\' => string \'newdataofkey3\' (length=13)

本文地址:https://www.stayed.cn/item/22924

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。