首页 > 解决方案 > PHP array_column 仅返回值

问题描述

是否可以从仅具有值的 array_column 获得结果?

我想要的示例数组 array_column

$array = [
   ['name' => ''],
   ['name' => 'John'],
   ['name' => 'Doe']
]

当我使用 array_column 这就是我得到的

Array
(
    [0] => 
    [1] => John
    [2] => Doe
)

我打算只使用 foreach 并检查每个值,但我想知道是否有更简单的方法来做到这一点

谢谢

标签: phparray-column

解决方案


我认为您想要这样的东西(仅获取具有值的列):

$array = [
    ['name' => ''],
    ['name' => 'John'],
    ['name' => 'Doe']
];

$result = array_filter(array_column($array, 'name'));

array_filter将过滤掉空名称,您将得到如下内容:

// print_r($result);

Array
(
    [1] => John
    [2] => Doe
)

此外,如果您需要重新排序索引,则可以像这样使用array_values

$result = array_filter(array_column($array, 'name'));

// If you want to reorder the indices
$result = array_values($result);

// print_r($result);

Array
(
    [0] => John
    [1] => Doe
)

推荐阅读