PHP关联数组是一种以字符串或数字作为键名,存储对应值的数组结构,和索引数组不同,它的键名可以自定义,在存储配置信息、表单数据等场景中应用非常广泛。掌握关联数组元素的添加与更新方法,是PHP开发者的基础技能。

PHP关联数组的基本特性
关联数组的键名可以是整数或者字符串,同一个数组中可以同时存在这两种类型的键名,但是键名必须是唯一的,如果出现重复的键名,后面的值会覆盖前面的值。我们可以通过array()语法或者短数组语法[]来创建关联数组。
<?php
// 使用array()创建关联数组
$user1 = array(
'name' => '张三',
'age' => 25,
'city' => '北京'
);
// 使用短数组语法创建关联数组
$user2 = [
'name' => '李四',
'age' => 28,
'city' => '上海'
];
?>
关联数组元素的添加方法
1. 直接赋值添加元素
这是最常用的添加方式,直接指定新的键名和对应的值即可,如果键名已经存在,就会变成更新操作。
<?php
$config = [
'db_host' => '127.0.0.1',
'db_port' => 3306
];
// 添加新的键值对
$config['db_user'] = 'root';
$config['db_pass'] = '123456';
print_r($config);
?>
2. 使用array_push函数添加
array_push函数通常用于向索引数组末尾添加元素,如果要用于关联数组,需要结合键值对的形式,不过这种方式相对少用,更适合批量添加索引元素。
<?php $arr = ['a' => 1, 'b' => 2]; // array_push添加关联数组元素需要传递键名和值作为参数,实际效果和直接赋值类似 array_push($arr, ['c' => 3]); print_r($arr); ?>
3. 使用array_merge函数合并添加
如果需要批量添加多个元素,或者合并两个关联数组,可以使用array_merge函数,后面的数组元素会覆盖前面数组中相同键名的元素。
<?php $base = ['name' => '测试', 'status' => 1]; $extra = ['age' => 20, 'status' => 2]; // 合并两个数组,extra中的status会覆盖base中的status $result = array_merge($base, $extra); print_r($result); ?>
关联数组元素的更新方法
关联数组的更新操作和添加操作逻辑一致,只要直接对已有的键名赋值新的内容,就可以完成更新。如果键名不存在,就会新增这个键值对。
<?php
$user = [
'name' => '王五',
'score' => 80
];
// 更新已有键name的值
$user['name'] = '王五改';
// 更新已有键score的值
$user['score'] = 95;
// 新增不存在的键class
$user['class'] = '三年级';
print_r($user);
?>
常见操作注意事项
- 关联数组的键名区分大小写,比如
name和Name是两个不同的键名。 - 使用
isset()函数可以判断某个键是否存在,避免更新不存在的键时出现逻辑错误。 - 如果要删除关联数组中的元素,可以使用
unset()函数,比如unset($user['age'])就可以删除age键对应的元素。
<?php
$info = ['a' => 1, 'b' => 2];
if (isset($info['a'])) {
$info['a'] = 10; // 存在则更新
} else {
$info['a'] = 5; // 不存在则添加
}
unset($info['b']); // 删除b元素
print_r($info);
?>
PHP关联数组array_pusharray_merge键值对修改时间:2026-07-14 16:36:31