数组\u推送在函数内不工作,PHP

数组\u推送在函数内不工作,PHP,php,arrays,foreach,array-push,Php,Arrays,Foreach,Array Push,我有这样一个例子,当我有array_push inside函数,然后我需要在foreach内部运行它来填充新的数组。不幸的是,我不明白为什么这不起作用。代码如下: <?php $mylist = array('house', 'apple', 'key', 'car'); $mailarray = array(); foreach ($mylist as $key) { online($key, $mailarray); } function online($thekey,

我有这样一个例子,当我有array_push inside函数,然后我需要在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);

?>

这是一个示例函数,它有更多的功能,这就是为什么我需要保持这个想法


谢谢。

您需要通过阵列


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

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


非常感谢您。我发现很难接受这个答案,因为你们两个同时发布!我只想说声谢谢@不客气。请随意接受其中任何一个,不要有伤害感,非常感谢!我想我永远无法解决这个问题。
function online($thekey, &$mailarray) {
    array_push($mailarray, $thekey);
}