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

PHP中如何根据数组元素的指定字段值筛选分割数组?

实现方案

你要实现的是按子数组指定字段的值拆分二维数组,最直接高效的方式是单次遍历原数组完成两个结果集的构建,只需要循环一次,不会额外消耗多余性能:

// 假设你的原二维数组为$sourceArray
$target = []; // 存储b字段值为123的子数组
$remain = []; // 存储剩余子数组

foreach ($sourceArray as $item) {
    if ($item['b'] === '123') {
        $target[] = $item;
    } else {
        $remain[] = $item;
    }
}

上述代码得到的$target和$remain就是你需要的两个新数组,默认就是连续数字索引,和你给出的预期输出结构完全一致。

如果你偏好使用PHP内置数组函数实现,也可以用array_filter进行两次筛选,注意筛选后如果需要重置索引,可以配合array_values使用:

// 筛选符合条件的数组
$target = array_values(array_filter($sourceArray, function($item) {
    return $item['b'] === '123';
}));

// 筛选剩余数组
$remain = array_values(array_filter($sourceArray, function($item) {
    return $item['b'] !== '123';
}));

这种方式代码更简洁,但因为需要遍历两次原数组,性能略低于单次遍历的方案,数据量不大的场景下使用没有区别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:06:09