我有一个空数组,我试图通过一个简单的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
数组的值。有什么建议吗?
答案 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);