php数组增删改操作需区分索引与关联数组:新增用[]、指定键、array_push或+合并;修改即重新赋值;删除用unset,需array_values重排索引。

PHP 中数组的增删改操作非常灵活,关键在于区分索引数组和关联数组,以及是否需要保留原有键名。
新增元素:自动追加与指定键名
向数组末尾添加新元素最常用 []= 语法,适用于索引数组和关联数组:
-
$arr[] = 'new_value';—— 自动分配下一个整数索引(如 0、1、2…) -
$arr['key'] = 'value';—— 显式指定键名,已存在则覆盖,不存在则新增 -
array_push($arr, 'a', 'b');—— 一次追加多个值,仅适用于索引数组末尾,返回新长度 -
$arr = $arr + ['k1'=>'v1', 'k2'=>'v2'];—— 合并数组,右侧键名不覆盖左侧已有键(+ 不是追加,是“左侧优先”的键合并)
修改元素:直接赋值即可
PHP 数组没有独立的“修改”语法,修改本质就是对已有键重新赋值:
该版本面向个人用户及小型数字卡销售商开发,具有操作简捷、功能强大等特点,且安全及稳定性突出修正说明:1、纠正了部分页面的翻页错误;2、纠正了后台统计不能清零的错误;3、纠正了后台商品管理修改后出错以及无法彻底删除的错误;4、纠正了注册时不能检测用户名是否存在的错误;5、纠正了用户无法修改密码的错误;6、新增“更多新闻”;7、新增会员登陆验证码;8、去除多余及
-
$arr[0] = 'updated';—— 修改索引为 0 的元素 -
$arr['name'] = 'Tom';—— 修改关联键 'name' 对应的值 - 若键不存在,该操作会变成新增;所以修改前可用
isset($arr['key'])或array_key_exists('key', $arr)判断
删除元素:unset 是核心,但要注意副作用
unset() 是删除数组元素的唯一通用方式,但它不会重排索引:
立即学习“PHP免费学习笔记(深入)”;
-
unset($arr[1]);—— 删除索引为 1 的元素,但索引 0、2、3 保持不变,数组不再连续 -
unset($arr['age']);—— 删除关联键 'age' - 若需重置数字索引(如后续要 for 循环用下标),删除后执行
$arr = array_values($arr); - 注意:
unset()不影响原变量是否为空,删除全部元素后empty($arr)才为 true
其他实用技巧
实际开发中常结合函数提升效率:
- 批量删除多个键:
unset($arr['a'], $arr['b'], $arr['c']); - 按条件过滤删除(保留满足条件的):
$arr = array_filter($arr, function($v) { return $v > 10; });,默认保留键名,如需重排索引加array_values() - 替换某个值(所有匹配项):
$arr = array_replace($arr, ['old'=>'new']);仅替换键名匹配的;如需按值替换,用array_map()或循环 +str_replace










