東西困擾我很長時間:優雅的方式來從陣列中提取值
我想這個數組轉換:
// $article['Tags']
array(3) {
[0] => array(2) {
["id"] => string(4) "1"
["tag"] => string(5) "tag1"
},
[1] => array(2) {
["id"] => string(4) "2"
["tag"] => string(5) "tag2"
},
[2] => array(2) {
["id"] => string(4) "3"
["tag"] => string(5) "tag3"
},
}
這種形式:
// $extractedTags[]
array(3) {
[0] => string(4) "tag1",
[1] => string(4) "tag2",
[2] => string(4) "tag3",
}
目前
我我正在使用這個代碼:
$extractedTags = array();
foreach ($article['Tags'] as $tags) {
$extractedTags[] = $tags['tag'];
}
是否有任何更優雅的方式做到這一點,也許是一個PHP內置函數?
你可以使用'array_filter'使用一個回調函數,但是這可能比你有解決方案不太優雅。我可能會堅持你所擁有的。 – 2010-06-01 11:02:35
正如我對複製http://stackoverflow.com/questions/2939189/php-multi-dimensional-array-manipulation/2939204#2939204顯示最快的方法做你想要的是foreach。 'array_map'和'array_filter'具有巨大的開銷,因爲它們需要爲每個元素調用用戶定義的函數。 – 2010-06-01 14:17:54
我剛剛爲php 5.5添加了這個建議:https://wiki.php.net/rfc/array_column--完全是我所要求的。 – smoove 2012-07-12 12:53:32