php - php - 更新内部的 foreach 变量
问题描述
我有一个数组:
$colors = array("red", "green");
我正在使用这个数组foreach
,我想在内部更新这个数组foreach
,例如:
foreach( $colors as $color ){
if( $color=='green' ){
array_push($colors, 'blue'); //now $colors is ["red", "green", "blue"]
}
echo $color . "<br>";
}
结果是:
red
green
结果blue
不是回声!
我怎样才能更新foreach
变量内部呢?
更新:
我这样做for
,它是工作。
$colors = array("red", "green");
for( $i=0; $i < count($colors); $i++ ){
if( $colors[$i]=='green' ){
array_push($colors, 'blue'); //now $colors is ["red", "green", "blue"]
}
echo $colors[$i]."<br>";
}
结果是
red
green
blue
我怎么能做到这一点foreach
?
解决方案
如果您作为参考传递(https://www.php.net/manual/en/language.references.php)(请参阅&$color
),它将工作,因为它将指向相同的内存地址,从而更新$colors
var:
<?php
$colors = array("red", "green");
foreach( $colors as &$color ){
if( $color=='green' ){
array_push($colors, 'blue');
}
echo $color . "<br>";
}
当然,如果您$colors
在循环之外打印,则无需使用print_r($colors);
. 仅在循环内部才需要按引用传递。
推荐阅读
- sql - 从表 A 中查找不包含在表 B 中的元素都由表 C 连接
- java - TextView整数作为可绘制png
- python - 在数据框上查找特定单词
- azure - Cortana 机器人超时
- python - IndexError:用作索引的张量必须是长、字节或布尔张量
- sql - 如何在 SAP HANA DB 中处理具有多行的表变量?
- sql - 从第一个 sql 查询中获取结果列表并对第一个查询列表的结果执行第二个查询
- r - 创建一个闪亮的应用程序来上传一个Stata数据集并将其转换为一个SPSS文件
- json - 删除格式不正确的 JSON 中的反斜杠
- r - 如何使用 ggplot & R 在同一个图表上绘制多条不同类型的线