我有一个像这样的多阵列:
array(2) {
[0]=>
array(8) {
[0]=>
string(1) "3"
["Id"]=>
string(1) "3"
[1]=>
string(8) "Portugal"
["Country"]=>
string(8) "Portugal"
[2]=>
string(8) "sometext"
["Type"]=>
string(8) "sometext"
[3]=>
string(1) "0"
["xptoabcdef"]=>
string(1) "0"
}
[1]=>
array(8) {
[0]=>
string(1) "4"
["Id"]=>
string(1) "4"
[1]=>
string(8) "Portugal"
["Country"]=>
string(8) "Portugal"
[2]=>
string(8) "sometext"
["Type"]=>
string(8) "sometext"
[3]=>
string(2) "22"
["xptoabcdef"]=>
string(2) "22"
}
如何以最简单的方式从数组中删除“Country”列?
答案 0 :(得分:8)
尝试使用array_map()
$new_array = array_map(function($v) {
unset($v['Country']);
return $v;
}, $old_array);
答案 1 :(得分:4)
您可以使用带有回调函数的array_map()
来实现此目的:
$array = array_map(function($elem) {
unset($elem['Country']);
return $elem;
}, $array);
或者使用foreach
循环并通过引用传递值,如下所示:
foreach ($array as $key => & $value) {
unset($value['Country']);
}
答案 2 :(得分:0)
删除数组及其子数组中的一个或多个键的所有实例(无论多深):
print_r(deep_delete_keys($arr,'country'));
function deep_delete_keys($arr, $keys) {
if (!is_array($keys)) $keys = array($keys);
$filteredArr = array_diff_key( $arr, array_flip( $keys ) );
foreach ($filteredArr as &$val) {
if (is_array($val)) {
$val = deep_delete_keys($val, $keys);
}
}
return $filteredArr;
}