如何制作此阵列:
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"
}
是否有帮助功能或其他可以帮助的功能?
如果事先知道密钥:
如果您使用的是PHP 5.5+,则可以使用array_column()
来提取具有plz
密钥的所有子数组:
$result = array_column($array, 'plz');
如果您使用的是旧版本的PHP:,那么使用array_map()
也可以实现同样的效果
$result = array_map(function($sub) { return $sub['plz']; }, $array);
如果事先不知道密钥:
使用array_walk_recursive()
:
$result = array();
array_walk_recursive($array, function($v) use (&$result) { $result[] = $v; });
请注意,它是递归工作的,所以如果您有更复杂的数组,它仍然可以工作。
或者,您可以使用RecursiveIteratorIterator
类:
$result = array();
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($iterator as $value) {
$result[] = $value;
}
有关更多详细信息,请参阅以下问题:RecursiveIteratorIterator如何在PHP中工作?
另一种选择:
$array = call_user_func_array('array_merge', array_map('array_values', $array));
- 使用
array_values()
从子数组中获取数字索引数组 - 使用
array_merge()
合并这些数组