【发布时间】:2021-09-25 06:56:04
【问题描述】:
使用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',
],
],
]
我不明白为什么 $options['item']['hasChildrenClass'] 在我的结果中消失了?
【问题讨论】:
-
您将初始
$defaultOptions中的整个item替换为新$options中给出的内容
标签: php arrays multidimensional-array array-merge