如何通过php函数推送数组值?

时间:2017-06-13 15:32:52

标签: php arrays function

我有一个空数组,我试图通过一个简单的PHP函数推送一个值。问题是在每次迭代中都没有保留这些值。这是一个例子:

function addColors($arrayValues, $arrayToUpdate){
    $arrayToUpdate[]=$arrayValues;
}

$colors = array();
$newColors= array("red", "blue", "yellow");

foreach($newColors as $newColor){
    addColors($newColor, $colors);
}

echo "<pre>".print_r($colors, true)."</pre>";

这只会打印一个空数组。而我希望看到的是添加到$colors数组的值。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您需要返回新数组并在循环中分配返回的数组:

function addColors($arrayValues, $arrayToUpdate){
    $arrayToUpdate[]=$arrayValues;
    return $arrayToUpdate;
}

foreach($newColors as $newColor){
    $colors = addColors($newColor, $colors);
}

或者按照你的方式去做,传递需要更新的变量作为参考;注意&。这是我的建议:

function addColors($arrayValues, &$arrayToUpdate){
    $arrayToUpdate[]=$arrayValues;
}

foreach($newColors as $newColor){
    addColors($newColor, $colors);
}

虽然在这个简单的例子中我不会使用函数:

foreach($newColors as $newColor){
    $colors[] = $newColor;
}

此外,已有一个函数可以执行此操作,但参数的顺序不同:

array_push($colors, $newColor);

没有循环就更简单了:

$colors = array_merge($colors, $newColors);