我正在尝试合并两个数组,这最初是可行的,但现在我正在尝试合并多维数组。
第一个数组:
$old_array =
Array (
[2] => Array (
[a] => Location 2
[b] => loc02
[c] => Array ( )
)
[3] => Array (
[a] => Location 3
[b] => loc04
[c] => Array ( [reader] => reader )
)
)
第二个数组:
$new_array =
Array (
[3] => Array (
[a] => Location 3 New
[b] => loc06
[c] => Array ( [publisher] => publisher )
)
)
当我在array_merge( $old_array, $new_array )
中运行时,第二个数组只是被添加到底部,而不是替换同一行。
这在以前是有效的,唯一的变化是添加了[c]
的数组,并且不确定合并是否会导致and替换。
发布于 2019-04-07 09:23:27
对于数字索引,array_merge只会将新项追加到第一个数组的末尾。这对于字符串索引很有效,因为值会被覆盖。如果要将它们合并为数字索引,请使用"+“运算符。
查看这条评论:https://www.php.net/manual/en/function.array-merge.php#92602
忘记添加,如果您有两个数组,$a
和$b
,并且您想用$b
的值覆盖$a
的值,那么,$new_array = $b + $a;
,上面的数组将导致:
Array
(
[3] => Array
(
[a] => Location 3 new
[b] => loc06
[c] => Array
(
[publisher] => publisher
)
)
[2] => Array
(
[a] => Location 2
[b] => loc02
[c] => Array
(
)
)
)
https://stackoverflow.com/questions/55557399
复制