您的输入数据(丰富了其他数据类型,-用于测试-)并假设您使用的是最新的 PHP 版本:
$input = array(
0=>
array(
"ID"=> "2"
),
1=>
array(
"ID"=> "3"
),
"iamnotanarray", 100, null
);
示范:
$out = array_map( function($el){ return @current($el);}, $input);
一般来说:
$out = array_combine(
array_keys($ret)
,array_map( function($el){ return @current($el);}, $ret)
)
输出:
var_export($out);
array (
0 => '2',
1 => '3',
2 => NULL,
3 => NULL,
4 => NULL,
)
var_dump($out);
array(5) {
[0]=>
string(1) "2"
[1]=>
string(1) "3"
[2]=>
NULL
[3]=>
NULL
[4]=>
NULL
}
要过滤可能不需要的数据类型,您可以使用:
$out = array_filter($out, is_string);
var_dump($out);
array(2) {
[0]=>
string(1) "2"
[1]=>
string(1) "3"
}
我没有计时(还没有),但这是使用PHP 的本机预编译函数。速度随 PHP 可执行文件的 gcc 编译器优化而变化。
注意: @current
很脏,不推荐,仅用于简洁/可读性。它会产生与is_array($el) ? current($el) : NULL;