【发布时间】:2015-02-13 11:29:08
【问题描述】:
我得到了多维数组。从每个子数组中,我想删除/取消设置索引为 1 的值。我的数组 $data。
Array
(
[3463] => Array
(
[0] => 1
[1] => 2014
[context] => 'aaa'
)
[3563] => Array
(
[0] => 12
[1] => 2014
[context] => 'aaa'
)
[2421] => Array
(
[0] => 5
[1] => 2014
[context] => 'zzz'
)
)
我想从子数组中删除索引为“1”的每个元素。期望的输出是:
Array
(
[3463] => Array
(
[0] => 1
[context] => 'aaa'
)
[3563] => Array
(
[0] => 12
[context] => 'aaa'
)
[2421] => Array
(
[0] => 5
[context] => 'zzz'
)
)
为什么这不起作用?
foreach ($data as $subArr) {
foreach ($subArr as $key => $value) {
if ($key == '1') {
unset($subArr[$key]);
}
}
}
如果这个问题对你们来说是微不足道的,我很抱歉。
【问题讨论】:
-
这是因为 foreach 复制了元素并且不适用于原始数组,您可以通过引用分配来避免这种情况。为了能够直接修改循环中的数组元素,在 $subArr 之前使用 &。在这种情况下,该值将通过引用分配。
标签: php arrays multidimensional-array foreach unset