Php 是否可以在阵列处于循环中时更新阵列?
我想知道是否有可能更新循环中的数组对象Php 是否可以在阵列处于循环中时更新阵列?,php,Php,我想知道是否有可能更新循环中的数组对象 <?php foreach($arrObj as $value) { if(is_array($value)) { $arrObj = $value; // the foreach array object should change and run new value } } ?> php将在$arrObj的顶级元素的“视图”上循环,因此更改$arrObj不会影响循环$arrObj本身将像往常一样分配给
<?php
foreach($arrObj as $value)
{
if(is_array($value))
{
$arrObj = $value; // the foreach array object should change and run new value
}
}
?>
php将在
$arrObj
的顶级元素的“视图”上循环,因此更改$arrObj
不会影响循环$arrObj
本身将像往常一样分配给$value
,因此最后一个子数组将保存到$arrObj
您不能在同一数组上的foreach循环中更新数组的值,但您可以使用其他循环,while和do…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));
那么,当您运行该代码时,实际会发生什么?它能做到你所期望的吗?分享
$arrObj
的样本数据?正是@jh314想要说的:我想要说的就是这个$arrayObj=array('php','java',array('UI',UX'),'.NET');我的问题是,如果值是数组的数组('UI',UX'),我们现在可以将$arrObj更新为数组的新值('UI',UX')吗?如果我使用array_push呢?嗯,我什么都试过了,但没有成功。谢谢,没有,但我找到了出路。感谢您的努力扫描您的解决方案,请与我们分享。它也可能对我们有所帮助。我使用do while loop,我试图实现的是遍历应用程序中的每个级别的文件夹,然后将文件取出。使用do-while循环,我能够获取第一个文件夹,如果结果是一个目录,则扫描它并获取所有文件,直到结果不是一个目录。本文也很有用,请参见示例3Ok。你以后的问题必须更具体一些。PHP有原生目录迭代器来实现这种目的。您可以浏览该手册并在迭代器上找到规范。这可能对你也有帮助。
################################
0################################
1################################
2################################
3################################
4################################
################################
1################################
2################################
3################################
4################################
5################################
6################################
7################################
8################################
9################################
10