我有一个看起来像这样的数据数组:-
$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,
)
);
我做错了什么事?我该如何解决?请帮忙。
答案 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;