我有这种情况,当我在函数内部有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);
?>
这是一个示例函数,它具有更多功能,这就是我需要保持这个想法的原因。
谢谢。
答案 0 :(得分:12)
默认情况下,PHP将数组视为一种“值类型”(写入时复制)。您可以通过引用传递它:
function online($thekey, &$mailarray) {
array_push($mailarray, $thekey);
}
答案 1 :(得分:5)
您需要传递数组by reference。
function online($thekey, &$mailarray) {