array_push在函数PHP中不起作用

dev*_*s11 8 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);

?>
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Ry-*_*Ry- 14

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

function online($thekey, &$mailarray) {
    array_push($mailarray, $thekey);
}
Run Code Online (Sandbox Code Playgroud)

另见签名array_push.

从这里向下滚动一下.


ker*_*ero 6

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

function online($thekey, &$mailarray) {
Run Code Online (Sandbox Code Playgroud)