你輸入數據(富含其他數據類型 - 因爲測試 - ),並假設你使用最新的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"
}
我沒火候(還),但這是使用P惠普原生預編譯功能。速度因您的PHP可執行文件的gcc編譯器優化而異。
注意:@current
髒,不推薦使用,只是爲了簡潔/易讀。它會產生與is_array($el) ? current($el) : NULL;
你確定你的參數是正確的嗎? ? –
@ChrisForrence他們現在。 :) – kba
很好的解決方案!但是,這隻能在PHP 5.5 + –