一张截图概括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 协议》,转载必须注明作者和本文链接
未填写
文章
68
粉丝
17
喜欢
141
收藏
119
排名:130
访问:7.5 万
私信
所有博文
社区赞助商