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

为何array_push()返回整数而非数组?如何正确使用该函数?

如何正确使用array_push()向二维数组添加元素?

我有一个二维数组和一个一维数组:

$arr_2D = array(
    array("product" => "apple", "quantity" => 2),
    array("product" => "Orange", "quantity" => 4),
    array("product" => "Banana", "quantity" => 5),
    array("product" => "Mango", "quantity" => 7)
);

$element = array("product" => "Lemon", "quantity" => 9);

想要把一维数组推入二维数组,得到包含新元素的二维数组,但执行以下代码后无效,返回结果是5:

$arr_2D = array_push($arr_2D, $element);

问题原因

array_push()的返回值是修改后数组的元素总数,不是修改后的数组本身。你把这个返回值(这里是5,原数组4个元素加新元素后总数为5)赋值给了$arr_2D,导致原数组被覆盖成数字,自然达不到预期效果。

正确用法

array_push()会直接修改传入的原数组,不需要将它的返回值重新赋值给原变量:

array_push($arr_2D, $element);

更简洁的写法

在PHP中,还可以直接用[]语法向数组末尾追加元素,效果和array_push()完全一致,写法更简洁:

$arr_2D[] = $element;

执行上述任意一种写法后,$arr_2D就会变成预期的二维数组:

$arr_2D = array(
    array("product" => "apple", "quantity" => 2),
    array("product" => "Orange", "quantity" => 4),
    array("product" => "Banana", "quantity" => 5),
    array("product" => "Mango", "quantity" => 7),
    array("product" => "Lemon", "quantity" => 9)
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:12:40