在多维度数组php中使用array_push添加数组

时间:2018-08-31 15:35:48

标签: php arrays

我有一个看起来像这样的数据数组:-

$a = array(
    array(
        'amount' => 1.2,
    ),
    array(
        'amount' => 0.53,
    ),
    array(
        'amount' => 25.2,
    )
);

和另一个数组

$n = array(
    'amount' => 12.98,
);

然后我使用array_push

$p = array_push($a,$n);
print_r($p);

但是我得到的最终结果是

4

我希望数组像:-

array(
    array(
        'amount' => 1.2,
    ),
    array(
        'amount' => 0.53,
    ),
    array(
        'amount' => 25.2,
    ),
    array(
        'amount' => 12.98,
    )
);

我做错了什么事?我该如何解决?请帮忙。

2 个答案:

答案 0 :(得分:1)

array_push将第二个参数压入第一个参数中指定的数组。它返回新的元素数量,因此:

array_push($a, $n);
print_r($a);

或者如果您需要新的阵列:

$p = array_merge($a, array($n));
print_r($p);

//or

$p = $a;
$p[] = $n;
print_r($p);

如果不需要新数组,这会更容易:

$a[] = $n;
print_r($a);

答案 1 :(得分:0)

此行为是正常的,因为array_push()的第一个参数通过引用传递了 并且:

  

返回数组中新的元素数。

您只需要将其用作:

array_push($a,$n);
echo '<pre>' . print_r($a, true) . '</pre>';

或者您可以使用 array_push速记

$a[] = $n;