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

PHP如何删除元素数量小于2的数组项,仅保留长度≥2的数组元素

核心问题排查

你原有代码的逻辑存在3处错误:

  • 遍历时未获取子项对应的键名,无法精准删除单条不符合要求的元素
  • 判断条件写的是统计根数组$admin_data的长度,而非判断每个子项自身的元素数量
  • 直接调用unset($admin_data)会清空整个数组,完全不符合筛选要求

修复后代码

方案1:foreach遍历处理(逻辑更直观)

foreach ($admin_data as $key => $item) {
    // 仅统计当前子项的元素数,小于2就删除对应键
    if (count($item) < 2) {
        unset($admin_data[$key]);
    }
}
// 如果你需要处理后数组的索引从0重新排序,可以加下面这行,不需要就省略
$admin_data = array_values($admin_data);

// 打印验证结果
echo "<pre>";print_r($admin_data);

方案2:array_filter内置函数实现(代码更简洁)

$admin_data = array_filter($admin_data, function($item) {
    // 保留元素数大于等于2的子项
    return count($item) >= 2;
});

// 打印验证结果
echo "<pre>";print_r($admin_data);

注意事项

如果你的子项是stdClass对象而非数组,需要把count($item)替换为count((array)$item)即可正常统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:30:01