我试图排除使用foreach循环,并使用数组函数进行重构。 我的假设是下面的代码将给我一个包含所有源数组中的第一个项目的结果。
<?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
$ids == array_column($data, 0);
- Mark Bakerarray_column
的效果非常好!我相信它正是我在这种情况下所需要的。 - Ben Fransen