PHP array_column 到 return 只有值
PHP array_column to return with values only
是否可以从 array_column 获得只有值的结果?
我想要的示例数组 array_column
$array = [
['name' => ''],
['name' => 'John'],
['name' => 'Doe']
]
当我使用 array_column 这就是我得到的
Array
(
[0] =>
[1] => John
[2] => Doe
)
我打算只使用 foreach 并检查每个值,但我想知道是否有更简单的方法来做到这一点
谢谢
我想你想要这样的东西(只获取有值的列):
$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
)
您也可以这样做来删除空值和空值:
// PHP 7.4+
$result = array_filter(array_column($array, 'name'), fn($val) => !is_null($val) && $val !== '');
// PHP 5.3 and later
$result = array_filter(array_column($array, 'name'), function($val) { return !is_null($val) && $val !== ''; });
是否可以从 array_column 获得只有值的结果?
我想要的示例数组 array_column
$array = [
['name' => ''],
['name' => 'John'],
['name' => 'Doe']
]
当我使用 array_column 这就是我得到的
Array
(
[0] =>
[1] => John
[2] => Doe
)
我打算只使用 foreach 并检查每个值,但我想知道是否有更简单的方法来做到这一点
谢谢
我想你想要这样的东西(只获取有值的列):
$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
)
您也可以这样做来删除空值和空值:
// PHP 7.4+
$result = array_filter(array_column($array, 'name'), fn($val) => !is_null($val) && $val !== '');
// PHP 5.3 and later
$result = array_filter(array_column($array, 'name'), function($val) { return !is_null($val) && $val !== ''; });