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

如何在PHP中不使用内置函数实现数组元素的删除操作

PHP虽然没有专门用于删除数组元素的delete/remove关键字,不使用内置函数的前提下完全可以手动实现该需求,以下是两种常用场景的实现方案:
注:unset是PHP原生语言结构,不属于内置函数范畴,可合法使用

1. 按指定索引删除数组元素

核心逻辑是遍历原数组,跳过要删除的索引,将其余元素写入新数组,同时可以自动重排连续索引:

<?php
// 示例数组
$arr = [1, 2, 3, 4, 5];
// 要删除的元素索引
$delIndex = 2;

$newArr = [];
$newIndex = 0;
foreach ($arr as $index => $val) {
    if ($index !== $delIndex) {
        $newArr[$newIndex] = $val;
        $newIndex++;
    }
}
// $newArr 即为删除后的数组,输出:Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 )
print_r($newArr);
?>

如果不需要保留连续索引,可以直接简化为一行代码:

unset($arr[$delIndex]);
2. 按指定值删除数组元素

核心逻辑是遍历数组时比对元素值,跳过匹配的目标值即可,可同时删除多个匹配的重复值:

<?php
// 示例数组
$arr = ['苹果', '香蕉', '橙子', '香蕉', '葡萄'];
// 要删除的元素值
$delVal = '香蕉';

$newArr = [];
$newIndex = 0;
foreach ($arr as $val) {
    if ($val !== $delVal) {
        $newArr[$newIndex] = $val;
        $newIndex++;
    }
}
// $newArr 即为删除后的数组,输出:Array ( [0] => 苹果 [1] => 橙子 [2] => 葡萄 )
print_r($newArr);
?>
注意事项
  • 关联数组删除逻辑和上述方案一致,只需把索引判断改为对应键名判断即可
  • 用新数组承接结果的方式兼容性更高,不会出现遍历过程中修改原数组导致的索引错乱问题
  • 若需要严格区分值的类型,判断时使用全等运算符===/!==即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:15:06