You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP多维数组中筛选出phone列非空的子数组?

最快高效过滤PHP多维数组的方法

嘿,要实现这个需求,用PHP内置的array_filter()函数就是最优解——毕竟内置函数是底层C实现的,比手动写循环高效得多,代码也更简洁。

实现代码

$array = [
    0 => [
        "id" => 1,
        "name" => "Sammy",
        "phone" => "2348055643322",
        "email" => "sammy@abc.com"
    ],
    1 => [
        "id" => 2,
        "name" => "Saheed",
        "phone" => "",
        "email" => "saay@aol.com"
    ],
    2 => [
        "id" => 3,
        "name" => "Edwin",
        "phone" => "2348099993322",
        "email" => "eddy@gmail.com"
    ],
    3 => [
        "id" => 3,
        "name" => "Jonadab",
        "phone" => "2348066773322",
        "email" => "jonadab@gmail.com"
    ],
    4 => [
        "id" => 3,
        "name" => "Mercy",
        "phone" => "",
        "email" => "mercy@sysnet.com"
    ]
];

// 过滤出phone非空的子数组,保留原键
$filteredArray = array_filter($array, fn($item) => !empty($item['phone']));

print_r($filteredArray);

代码说明

  • array_filter()会自动遍历数组,只保留回调函数返回true的元素,默认会保留原数组的键名,正好匹配你想要的结果格式。
  • 这里用了PHP 7.4+支持的箭头函数fn($item) => !empty($item['phone']),如果你的PHP版本低于7.4,可以换成普通匿名函数:
    $filteredArray = array_filter($array, function($item) {
        return !empty($item['phone']);
    });
    
  • !empty($item['phone'])会严格排除空字符串、null、0等“空值”,如果只是想排除空字符串,也可以直接写$item['phone'] !== '',根据你的实际需求调整。

输出结果

运行后得到的结果和你期望的完全一致:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Sammy
            [phone] => 2348055643322
            [email] => sammy@abc.com
        )

    [2] => Array
        (
            [id] => 3
            [name] => Edwin
            [phone] => 2348099993322
            [email] => eddy@gmail.com
        )

    [3] => Array
        (
            [id] => 3
            [name] => Jonadab
            [phone] => 2348066773322
            [email] => jonadab@gmail.com
        )

)

内容的提问来源于stack exchange,提问作者SaAy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:58:55