我想知道是否可以循环更新数组对象
<?php
foreach($arrObj as $value)
{
if(is_array($value))
{
$arrObj = $value; // the foreach array object should change and run new value
}
}
?>
答案 0 :(得分:0)
php将遍历$arrObj
的顶级元素的“视图”,因此更改$arrObj
不会影响该循环。 $arrObj
本身将像往常一样分配给$value
,因此最后一个子数组将保存到$arrObj
中。
答案 1 :(得分:0)
您不能在同一数组的foreach循环中更新数组的值,但可以与其他循环一起使用for和while ... while: 自己看看:
""
这三个循环实现相同的结果,并且打印出的结果是:
$array=[0,1,2,3,4,range(1,10)];
for(;false!==key($array)&&NULL!==key($array);){
$temp=[];
list($k,$value)=each($array);
print(str_repeat('#',32).'<br>');
if(is_array($value))
$array=$value;
else
print($value);
}
$array=[0,1,2,3,4,range(1,10)];
while(false!==key($array)&&NULL!==key($array)){
$temp=[];
list($k,$value)=each($array);
print(str_repeat('#',32).'<br>');
if(is_array($value))
$array=$value;
else
print($value);
}
$array=[0,1,2,3,4,range(1,10)];
do{
$temp=[];
list($k,$value)=each($array);
print(str_repeat('#',32).'<br>');
if(is_array($value))
$array=$value;
else
print($value);
} while(false!==key($array)&&NULL!==key($array));