Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel |过滤关联数组中的空值_Laravel_Associative Array - Fatal编程技术网

Laravel |过滤关联数组中的空值

Laravel |过滤关联数组中的空值,laravel,associative-array,Laravel,Associative Array,我有这样一个关联数组: $myarray = array( 'key1' => 'value1' 'key2' => 'value1','value2','value3', null ,'value4' null 'key4' => null ,'value2','value3', null 'key5'

我有这样一个关联数组:

 $myarray = array(
                'key1' => 'value1'
                'key2' => 'value1','value2','value3', null ,'value4'
                 null
                'key4' => null ,'value2','value3', null
                'key5'
                 null
                );
     $myarray = array(
                'key1' => 'value1'
                'key2' => 'value1','value2','value3','value4'
                 null
                'key4' => 'value2','value3'
                'key5'
                 null
                );
我想删除空值,并尝试了以下操作:

$collection = collect($myarray);

            $filtered = $collection->filter(function ($value, $key) {
                return $value != null;
            });
结果是:

     $myarray = array(
                'key1' => 'value1'
                'key2' => 'value1','value2','value3', null ,'value4'
                'key4' => null ,'value2','value3', null
                'key5'
                );
但我想要的结果是这样的:

 $myarray = array(
                'key1' => 'value1'
                'key2' => 'value1','value2','value3', null ,'value4'
                 null
                'key4' => null ,'value2','value3', null
                'key5'
                 null
                );
     $myarray = array(
                'key1' => 'value1'
                'key2' => 'value1','value2','value3','value4'
                 null
                'key4' => 'value2','value3'
                'key5'
                 null
                );
我该怎么做


PS:我使用的是Laravel 5.4.36

您的代码从顶级数组中删除
null
值。“期望结果”从嵌套数组中删除
null

请尝试以下方法:

foreach($myarray作为$key=>$value){
if(is_null($key)| |!is_数组($value)){
继续;
}
$myarray[$key]=数组过滤器($value);
}

无法确认。结果将是一个集合。即使您执行
$filtered->all(),结果是
[“key1”=>“value1”key2”=>“value1”0=>“value2”1=>“value3”3=>“value4”5=>“value2”6=>“value3”8=>“key5”]
我在chrome开发者工具上推送并查看了JSON。这是我从那里得到的结果。这确实有效,解释得很好,也很简洁。谢谢!不客气。