当我使用array_merge()时,有一件事我不明白:
$defaultOptions = [
'active' => null,
'activeClass' => 'active',
'wrapper' => [
'attributes' => null,
'templateVars' => null
],
'item' => [
'hasChildrenClass' => '', // this disappears after array_merge
'attributes' => null,
'linkAttrs' => null,
'templateVars' => null
]
];
$options = [
'active' => [5,3],
'item' => [
'attributes' => ['class' => 'test']
]
];
$options = array_merge($defaultOptions, $options);$options的结果是
[
'active' => [
(int) 0 => (int) 5,
(int) 1 => (int) 3,
],
'activeClass' => 'active',
'wrapper' => [
'attributes' => null,
'templateVars' => null,
],
'item' => [
'attributes' => [
'class' => 'test',
],
],
]我不明白为什么在我的结果中美元选项“项目”消失了?
发布于 2021-09-25 07:25:01
在array_merge()中,如果数组具有相同的字符串键,则后面的数组的值将覆盖前一个数组。如果数组有数字键,则后面的数组中的值将与前一个附加在一起。如果数组包含null 或 empty 值,则将跳过该值并从合并的数组中删除。
https://stackoverflow.com/questions/69323836
复制相似问题