如何过滤数组并删除所有空元素。我需要从数组中删除空元素,包括数组中的数组。从那个数组:$array = [ 'ip' => '127.0.0.1', 'user_agent' => 'dkdkdk', '_id' => 'fjjfjf', 'user' => [ 'longName' => '', 'shortName' => '', 'username' => [ 'a' => 'b', 'c' => '' ] ], 'dsd' => [ 'zz' => [ 'dd' => [ 'ff' => '' ] ] ] ], 'dsddd' => '', 'vcv' => null, 'aavx' => 0];我想得到:$array = [ 'ip' => '127.0.0.1', 'user_agent' => 'dkdkdk', '_id' => 'fjjfjf', 'user' => [ 'username' => [ 'a' => 'b', ] ], 'aavx' => 0];我尝试使用 array_filter 但它只删除不删除数组键
1 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
要删除所有空数组或键,您将必须递归迭代并通过引用传递值给后续的递归调用,以确保您编辑子数组的相同副本。现在,您可以只使用空支票并取消设置它们。
function removeEmptyArrays(&$array){
foreach($array as $key => &$value){
if(is_array($value)) removeEmptyArrays($value);
if(is_array($value) && count($value) == 0 || is_null($value) || is_string($value) && strlen($value) == 0) unset($array[$key]);
}
}
演示: https ://3v4l.org/XDJdD
- 1 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消
