函数内的array_push不起作用,PHP

10

我有一个问题,当我在函数内使用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个回答

18

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

function online($thekey, &$mailarray) {
    $mailarray[] = $thekey;
}

另请参阅 array_push的签名


非常感谢!我觉得我永远也解决不了那个问题。 - devjs11

9

你需要通过引用方式传递数组

function online($thekey, &$mailarray) {

非常感谢。我很难接受你们同时发布答案的事实!我只想说非常感谢!!!@minitech - devjs11
不用客气,随意选择任何一个,不会有任何伤害感。 - kero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接