我有一个数组,其中有另一个数组。我需要取消设置子数组的索引。
array
0 =>
array
'country_id' => string '1' (length=1)
'description' => string 'test' (length=4)
1 =>
array
'country_id' => string '2' (length=1)
'description' => string 'sel' (length=5)
2 =>
array
'country_id' => string '3' (length=1)
'description' => string 'soul' (length=5)
现在我需要取消设置主数组的所有三个索引的country_id
。我正在使用PHP,我最初认为unset会做,直到我意识到我的数组是嵌套的。
我该怎么做?
答案 0 :(得分:0)
foreach ($original_array as &$element) {
unset($element['country_id']);
}
为什么&$element
?
因为foreach (...)
会执行副本,所以我们需要将引用传递给" current"元素是为了取消它(而不是他的副本)
答案 1 :(得分:0)
foreach ($masterArray as &$subArray)
unset($subArray['country_id']);
这个想法是你通过引用获取每个子数组并在其中取消设置密钥。
array_walk
函数。
array_walk($masterArray, function (&$item) { unset ($item['country_id']); });
我不确定它是否更具可读性,而函数调用会使它变慢。不过,选择就在那里。
答案 2 :(得分:0)
foreach($yourArray as &$arr)
{
unset($arr['country_id']);
}
答案 3 :(得分:0)
您需要使用:
foreach ($array as &$item) {
unset($item['country_id']);
}
但是在循环之后你应该真的取消设置引用,否则你可能会遇到麻烦所以正确的代码是:
foreach ($array as &$item) {
unset($item['country_id']);
}
unset($item);