文章目录

PHP 数组操作:array_push()、array_pop()、array_merge()

发布于 2026-04-04 05:35:07 · 浏览 3 次 · 评论 0 条

PHP 数组操作:array_push()、array_pop()、array_merge()

PHP 中的数组是处理数据的核心工具。掌握几个基础函数,能让你高效地增删合并数组元素。下面直接介绍 array_push()array_pop()array_merge() 的用法和注意事项。


使用 array_push() 向数组末尾添加元素

调用 array_push() 函数可将一个或多个值追加到数组的末尾。

  1. 准备一个已有数组,例如 $fruits = ['apple', 'banana'];`。 2. **执行** `array_push($fruits, 'orange');,此时 $fruits` 变为 `['apple', 'banana', 'orange']`。 3. **支持**一次添加多个值:`array_push($fruits, 'grape', 'kiwi'); 会把两个水果都加到末尾。

注意:array_push() 会直接修改原数组,不需要额外赋值。但若数组键是数字索引,新元素会按顺序递增;若是关联数组(带字符串键),新元素仍使用数字索引,可能造成键类型混杂。

$colors = ['red', 'green'];
array_push($colors, 'blue', 'yellow');
// $colors 现在是 [0 => 'red', 1 => 'green', 2 => 'blue', 3 => 'yellow']
```

替代写法:也可以用 `$array[] = 'value';` 添加单个元素,性能略优于 `array_push()`,但无法一次加多个。

---

## 使用 array_pop() 从数组末尾移除并返回元素

**调用** `array_pop()` 会删除数组最后一个元素,并**返回**该元素的值。

1. **准备**一个非空数组,如 `$stack = [10, 20, 30];`。
2. **执行** `$last = array_pop($stack);`,此时 `$last` 的值是 `30`,而 `$stack` 变为 `[10, 20]`。
3. **检查**返回值:如果原数组为空,`array_pop()` 返回 `null`,且原数组不变。

此函数常用于实现“栈”结构(后进先出)。它同样直接修改原数组。

```php
$numbers = [1, 2, 3];
$popped = array_pop($numbers);
// $popped 是 3,$numbers 是 [1, 2]

警告:不要对关联数组使用 array_pop(),因为“末尾”由内部指针决定,结果可能不符合直觉。


使用 array_merge() 合并两个或多个数组

调用 array_merge() 可将多个数组拼接成一个新数组,不修改原数组。

  1. 准备两个数组:
    $a = ['x', 'y'];
       $b = ['z'];
  2. 执行 `$combined = array_merge($a, $b);`,结果是 `['x', 'y', 'z']`。 3. **处理**数字键:合并时会重新索引,从 0 开始连续编号。 4. **处理**字符串键:若键名相同,后面的值会覆盖前面的。 ```php $arr1 = ['a' => 1, 'b' => 2];
    $arr2 = ['b' => 3, 'c' => 4]; $result = array_merge($arr1, $arr2);
    // $result 是 ['a' => 1, 'b' => 3, 'c' => 4] ``` 特殊情况:如果所有输入数组都是数字索引,结果也是连续数字索引;只要有一个是关联数组,结果就保留其键名。 | 输入数组类型 | 合并后键的行为 | | :--- | :--- | | 全为数字索引 | 重置为从 0 开始的连续整数 | | 含字符串键 | 字符串键保留,数字键仍重置 | 例如: ```php $num = [10, 20];
    $assoc = ['first' => 100]; $merged = array_merge($num, $assoc);
    // 结果: [0 => 10, 1 => 20, 'first' => 100]

常见错误与最佳实践

  1. 误以为 array_merge() 修改原数组:它总是返回新数组,原数组不变。记得接收返回值
  2. 在空数组上使用 array_pop():会返回 null,需提前判断数组是否为空。
  3. 混合使用数字键和字符串键:可能导致意外覆盖或索引混乱。尽量保持数组类型一致
  4. 性能考虑:对于只添加一个元素,优先用 `$arr[] = value;` 而非 `array_push()`。 正确示例: ```php $data = [];
    $data[] = 'start'; // 高效添加 array_push($data, 'middle', 'end'); // 一次加多个
    $final = array_merge($data, ['extra']);
    $last_item = array_pop($final); // 安全弹出

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文