如果array_column字段为空,则PHP不返回任何内容

时间:2016-01-28 16:36:12

标签: php arrays

下面的代码采用数组$array和数组键$item,并通过在每个项目中添加逗号来实现内爆。如何更改它,以便如果数组中的项的值为null,则implode将不会添加空白逗号。

public static function implode($array, $item) 
{
    return implode(',', array_column($array, $item));
}

例如:

$array = [
    ['eri_number' => ''],
    ['eri_number' => '222']
    ['eri_number' => '']
];
$item = 'eri_number';
$myClass->implode($array, $item);

上面的代码将输出;

,222,

我只是想让它输出222而没有其他空白值。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您可以使用array_filter()

过滤掉空箱
return implode(',', array_filter(array_column($array, $item)));

请注意,这也会过滤掉0,字符串0falsenull

答案 1 :(得分:0)

在爆炸之前将array_filter应用于数组。

public static function implode($array, $item) 
{
    return implode(',', array_filer(array_column($array, $item)));
}

您可以添加一个回调函数来定义要过滤的内容,但由于空字符串是假的,因此它应该可以直接使用。