Есть ли какая-либо функция PHP array_* для извлечения отдельных значений из многомерного массива?
Если у меня есть многомерный массив, и я хочу извлечь из него некоторые данные и поместить их в новый массив, существует ли какой-либо существующий array_*()
Функция для этого?
Например, если у меня есть следующий массив:
array(
[
'id' => 1,
'num' => 200,
'text' => 'abc'
],
[
'id' => 2,
'num' => 230,
'text' => 'def'
],
[
'id' => 3,
'num' => 100,
'text' => 'ghi'
],
)
Я хотел бы получить следующий результирующий массив:
[ 'abc', 'def', 'ghi' ]
Конечно, я всегда могу сделать это вручную, используя foreach()
или что-то подобное, но однострочники всегда хороши:)
2 ответа
Решение
Попробуйте функцию array_column;
array_column(array $data, 'key')
Вы можете использовать array_map() в php
<?php
$array = array([
'id' => 1,
'num' => 200,
'text' => 'abc'
],
[
'id' => 2,
'num' => 230,
'text' => 'def'
],
[
'id' => 3,
'num' => 100,
'text' => 'ghi'
],
);
$return = array_map(function ($value) {
return $value['text'];
}, $array);
echo "<pre>";
print_R($return);
?>