一张截图概括A+B与array_merge(A,B)的区别

Laravel
merge操作:相同的字符键改写,相同的数字键重新编号;
+号操作:B类似于候补选手,如果B中的键在A中存在,则B的这对键值没机会上场

再看array_merge_recursive(A,B)

array_merge_recursive(
  [
    "a" => "red",
    "b" => [
        "green",
      ]
  ],
  [
    "c" => "blue",
    "b" => [
        "yellow",
      ]
  ]
);

/* 结果如下
   [
     "a" => "red",
     "b" => [
       "green",
       "yellow",
     ],
     "c" => "blue",
   ]
*/
array_merge_recursive(
  [ "b" => "green"],
  [ "b" =>
      ["yellow"]
  ]
);

/* 合并后 b 的键值并不是 ["green", ["yellow"]] 而是下面这样
   [
     "b" => [
       "green",
       "yellow",
     ],
   ]
*/
array_merge_recursive(
  "green",
  [
    "yellow"
  ]
);

//报错 Expected parameter 1 to be an array
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
63
粉丝
17
喜欢
140
收藏
118
排名:132
访问:7.4 万
私信
所有博文
社区赞助商