我有一个如下的关联多维数组:
[
7 => [49 => null, 41 => null],
8 => [70 => null, 69 => null],
105 => null,
9 => null,
10 => null
]
现在,我需要处理每个键,但是我很难通过foreach()
循环访问所有元素--因为没有值,我一直在尝试使用array_keys()
,但是它不适合多维键。
有没有一种方法可以将键指定为值,从而得到这样的结构?
Array
(
[7] => Array
(
[49] => 49
[41] => 41
)
[8] => Array
(
[70] => 70
[69] => 69
)
[105] => 105
[9] => 9
[10] => 10
)
这样,我就可以使用foreach()
来获取每个键的值。
3条答案
按热度按时间xxb16uws1#
使用array_walk_recursive()将键作为值赋给其值不是数组的每个条目。
knpiaxh12#
在这种情况下我们可以使用array_walk_recursive,在array_walk_recursive的回调函数中,如果我们传递了元素引用,那么在回调函数中我们可以用key改变空值。
dced5bon3#
在PHP7.4中,你可以享受到"arrow function"语法的简洁。你仍然需要使leafnode的值可以通过引用修改,并手动将
$k
的值赋值给$v
。arrow函数语法尝试(默认情况下)将表达式中的值赋值给return
,但返回值被忽略。代码:(Demo)
输出: