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

如何在PHP中根据对象数组的键过滤ceklis=1的数据

解决PHP数组筛选问题:保留ceklis等于1的数据

你的原始数组示例:

$item = [
    0 => [
        'ceklis' => 1,
        'email' => 'john@gmail.com'
    ],
    2 => [
        'ceklis' => 0,
        'email' => 'andrew@gmail.com'
    ]
];

下面提供两种实现筛选的方式:

方式一:修改现有foreach循环

直接在循环里加判断条件,只保留符合要求的数据:

$data = array();
foreach($item as $value) {
    // 判断当前子数组的ceklis值是否为1
    if ($value['ceklis'] == 1) {
        $data[] = array(
            'ceklis' => $value['ceklis'],
            'email' => $value['email']
        );
    }
}
echo "<pre>";
print_r($data);
echo "</pre>";

说明:

  • 循环中的$value就是当前遍历到的子数组,直接通过$value['ceklis']取值判断即可,无需再用$item[$key]
  • 原来的$n变量是多余的,$data[]会自动按顺序追加元素

方式二:用PHP内置函数array_filter更简洁

利用内置函数直接过滤数组,代码更精简:

$data = array_filter($item, function($val) {
    // 返回true的元素会被保留
    return $val['ceklis'] == 1;
});

echo "<pre>";
print_r($data);
echo "</pre>";

说明:

  • array_filter会自动遍历数组,将回调函数返回true的元素保留到结果数组中
  • 这种写法省去了手动写循环的步骤,代码更高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:28:09