为了账号安全,请及时绑定邮箱和手机立即绑定

删除数组中的所有空子数组

删除数组中的所有空子数组

PHP
冉冉说 2022-11-12 13:11:27
如何过滤数组并删除所有空元素。我需要从数组中删除空元素,包括数组中的数组。从那个数组:$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


查看完整回答
反对 回复 2022-11-12
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号