Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以在阵列处于循环中时更新阵列?_Php - Fatal编程技术网

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