如何制作此数组:
array(2) {
[0]=>
array(1) {
["plz"]=>
string(4) "4460"
}
[1]=>
array(1) {
["plz"]=>
string(4) "4000"
}
}
变成这样的东西只需要一个数组键中的值无关紧要:
array(2) {
[0]=>
string(4) "4460"
[1]=>
string(4) "4000"
}
是否有辅助功能或其他可以提供帮助的功能?
答案 0 :(得分:7)
如果事先知道密钥:
如果您使用的是PHP 5.5+,则可以使用array_column()
使用plz
密钥提取所有子阵列:
$result = array_column($array, 'plz');
如果你使用旧版本的PHP,可以使用array_map()
来实现同样的效果:
$result = array_map(function($sub) { return $sub['plz']; }, $array);
如果事先不知道密钥:
$result = array();
array_walk_recursive($array, function($v) use (&$result) { $result[] = $v; });
请注意,它以递归方式工作,因此如果您有更复杂的数组,它仍然可以工作。
或者,您可以使用RecursiveIteratorIterator
class:
$result = array();
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($iterator as $value) {
$result[] = $value;
}
有关详细信息,请参阅此问题:How does RecursiveIteratorIterator work in PHP?
答案 1 :(得分:2)
另一种选择:
$array = call_user_func_array('array_merge', array_map('array_values', $array));
array_values()
array_merge()