array_merge 没有替换匹配的 $key
array_merge is not replacing the matching $key
我正在尝试合并两个数组,这本来是可行的,但现在我正在尝试合并多维数组。
第一个数组:
$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]
的数组,不确定合并是否导致添加而不是替换。
对于数字索引,array_merge 只会将新项目附加到第一个数组的末尾。这适用于字符串索引,因为值会被覆盖。如果要将它们合并为数字索引,请使用“+”运算符。
查看此评论:https://www.php.net/manual/en/function.array-merge.php#92602
忘记添加了,如果你有 2 个数组,$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
(
)
)
)
我正在尝试合并两个数组,这本来是可行的,但现在我正在尝试合并多维数组。
第一个数组:
$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]
的数组,不确定合并是否导致添加而不是替换。
对于数字索引,array_merge 只会将新项目附加到第一个数组的末尾。这适用于字符串索引,因为值会被覆盖。如果要将它们合并为数字索引,请使用“+”运算符。
查看此评论:https://www.php.net/manual/en/function.array-merge.php#92602
忘记添加了,如果你有 2 个数组,$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
(
)
)
)