array_push在函数PHP中不起作用

时间:2013-11-23 23:42:51

标签: php arrays foreach array-push

我有这种情况,当我在函数内部有array_push然后我需要在foreach中运行它来填充新数组。不幸的是,我不明白为什么这不起作用。这是代码:

<?php

$mylist = array('house', 'apple', 'key', 'car');
$mailarray = array();

foreach ($mylist as $key) {
    online($key, $mailarray);
}

function online($thekey, $mailarray) {

    array_push($mailarray,$thekey);

}

print_r($mailarray);

?>

这是一个示例函数,它具有更多功能,这就是我需要保持这个想法的原因。

谢谢。

2 个答案:

答案 0 :(得分:12)

默认情况下,PHP将数组视为一种“值类型”(写入时复制)。您可以通过引用传递它:

function online($thekey, &$mailarray) {
    array_push($mailarray, $thekey);
}

另见the signature of array_push

Scroll down a bit from here.

答案 1 :(得分:5)

您需要传递数组by reference

function online($thekey, &$mailarray) {