array_push函数中不起作用,PHP


array_push not working within function, PHP

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

<?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) {
    $mailarray[] = $thekey;
}

另请参阅array_push的签名。

您需要通过引用传递数组。

function online($thekey, &$mailarray) {