Что-то, что ошибки меня долгое время:элегантный способ извлечения значений из массива
Я хочу, чтобы преобразовать этот массив:
// $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', используя функцию обратного вызова, но это, вероятно, менее элегантно, чем решение, которое вы имеете. Я, наверное, придерживаюсь того, что у тебя есть. –
Как мои показатели по дублированию http://stackoverflow.com/questions/2939189/php-multi-dimensional-array-manipulation/2939204#2939204 показывают самый быстрый способ делать то, что вы хотите, это foreach. У массивов 'array_map' и' array_filter' есть огромные накладные расходы, так как они должны вызывать определенную пользователем функцию для каждого элемента. –
Я просто добавляю это предложение для php 5.5: https://wiki.php.net/rfc/array_column - делает именно то, что я просил. – smoove