如何在从数据库

时间:2017-07-05 08:13:49

标签: php mysql laravel

$ data变量的结果。我想在输出中删除空值。

以下代码:

    $data = json_decode(json_encode($data),true);

我稍后将$data复制到$data1以使用以下代码合并这两个变量:

$data1 = $data;
$unique= array_merge($data1,$data);
$final =array_values(array_map("unserialize",array_unique(array_map("serialize", $unique))));

3 个答案:

答案 0 :(得分:1)

您可以使用 array_filter 删除数组的空值

这样做

$data = json_decode(json_encode($data),true);
$data =array_filter($data);

<强>修改
在处理多维数组时(正如您在评论中所述),要删除具有空数据的数组,您需要使用 array_map array_filter in_array 即可。

这样做

$data = json_decode(json_encode($data),true);
$data =array_map('array_filter',$data);
$data=array_map(function ($data){
            if(!in_array(null,$data))
                return $data;
        },$data);
$data=array_filter($data);

它将输出作为
enter image description here

它适用于你。

答案 1 :(得分:0)

如果您只使用包含字符串的数组,

array_filter 将完美运行。请注意,否则 array_filter 也会删除0,&#39;&#39;和false

请参阅此答案:Remove empty array elements

答案 2 :(得分:0)

如果$data adn $data1都是数据库结果,我可以假设它们是集合。

然后,您可以应用union$data->union($data1);

进行1次收集

之后你可以filter结果集:

$data->filter(function ($element, $key) { return $element!==null; });