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

PHP数组删除所有匹配元素并重置索引的实现方法

移除数组中值为0的元素并重置索引

问题场景

给定数组:

$array = array("a", "b", 0, "c", 0);

需要移除所有值为0的元素,并重置剩余元素的索引,期望结果:

Array ( [0] => a [1] => b [2] => c )

尝试使用array_diff($bal_units, array(0));未成功。

失败原因

array_diff()采用松散比较(==),PHP会自动转换类型:字符串会被转为数字,比如"a"会被转为0,此时"a" == 0成立,导致非0的字符串元素也被错误过滤,这就是该方法失效的核心原因。

解决方案

方案1:使用array_filter+array_values(推荐)

通过严格判断(!==)筛选元素,再用array_values重置索引:

$array = array("a", "b", 0, "c", 0);
$result = array_values(array_filter($array, function($value) {
    return $value !== 0;
}));
print_r($result);

方案2:手动遍历过滤

直接遍历数组,将符合条件的元素存入新数组,新数组自动生成连续索引:

$array = array("a", "b", 0, "c", 0);
$result = [];
foreach ($array as $value) {
    if ($value !== 0) {
        $result[] = $value;
    }
}
print_r($result);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:15:40