我的脚本返回了以下数组。
Array
(
[0] => Array
(
[id] => 67
)
[1] => Array
(
[id] => 68
)
[2] => Array
(
[id] => 69
)
[3] => Array
(
[id] => 70
)
)
如何将其转换为:
Array
(
[0] => 67
[1] => 68
[2] => 69
[3] => 70
)
我只对返回的ID感兴趣。
答案 0 :(得分:3)
array_map()
是一种可能性,因为它将回调返回的任何值累积到其返回的数组中。然后回调只需要返回id
:
$flat = array_map(function($a) {return $a['id'];}, $orig_array);
以上需要PHP 5.3+,因为它使用匿名函数,但使用作为字符串传递给array_map()
的命名函数可以实现相同的功能。
否则,foreach
循环非常传统,可以保留原始密钥,然后是非顺序的。
$flat = array();
foreach ($orig_array as $key => $a) {
$flat[$key] = $a['id'];
}
答案 1 :(得分:1)
我没有测试过这个功能,但请尝试这个建议:http://www.php.net/manual/en/function.array-values.php#104184
答案 2 :(得分:1)
$temp = call_user_func_array('array_merge_recursive', $arr);
$final = $temp['id'];
print_r($final);
为什么这项工作很棘手。老实说,只需使用foreach循环。
答案 3 :(得分:1)
继续@Mickael's answer,您还可以使用array_walk()
功能:
function format(&$item, $key) {
$item = $item["id"];
}
array_walk($arr, "format");
或者在lambda函数的一行中:
array_walk($arr, create_function('&$item, $key', '$item = $item["id"];'));
它直接与您的数组一起使用,因此我们可以轻松地将其称为“数组转换”。