Я пытаюсь исключить foreach-петли и реорганизовать их с помощью функций массива. Я был в предположении, что приведенный ниже код даст мне результат со всеми первыми элементами из исходного массива.PHP array_filter, чтобы получить только одно значение из массива
<?php
$data= [
0 => [1, 'test1'],
1 => [2, 'test2'],
2 => [3, 'test3'],
];
$ids = array_filter($data, function($item) {
return $item[0];
});
var_dump($ids);
Но когда я var_dump $ids
я получаю выход:
array (size=3)
0 =>
array (size=2)
0 => int 1
1 => string 'test1' (length=5)
1 =>
array (size=2)
0 => int 2
1 => string 'test2' (length=5)
2 =>
array (size=2)
0 => int 3
1 => string 'test3' (length=5)
Почему не выход:
array (size=3)
0 => int 1
1 => int 2
2 => int 3
array_filter() обратного вызова возвращает истина/ложь, указывающий, следует ли включить или исключить из отфильтрованного массива элемент; вы всегда возвращаете правдивое значение –
Если вы хотите получить только идентификаторы (столбец '0'), вы должны использовать [array_column()] (http://www.php.net/manual/en/function .array-column.php): '$ ids == array_column ($ data, 0);' –
'array_column' работает как шарм! И я считаю, что это именно то, что мне нужно в этом случае. – Ben