Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Loops_Foreach_Spl - Fatal编程技术网

Php 以递归方式或递归迭代器对每个对象进行乘法

Php 以递归方式或递归迭代器对每个对象进行乘法,php,arrays,loops,foreach,spl,Php,Arrays,Loops,Foreach,Spl,我正在使用这个代码,它工作得很好。然而,似乎不是最好的选择,因为每个人都有倍数 foreach ($arr_items as $key => $value) { $id_user = $key; foreach ($value as $k => $v) { foreach ($v as $x => $y) { $id_transacao = $y['id_transacao']; $id_dupli

我正在使用这个代码,它工作得很好。然而,似乎不是最好的选择,因为每个人都有倍数

foreach ($arr_items as $key => $value) {
    $id_user = $key;
    foreach ($value as $k => $v) {
        foreach ($v as $x => $y) {
            $id_transacao = $y['id_transacao'];
            $id_duplicated = $y['id_duplicated'];
            foreach ($y as $g => $b) {
                if (is_array($b)){
                    foreach ($b as $kn => $l) {
                        var_dump($id_user);
                        var_dump($id_transacao);
                        var_dump($id_duplicated);
                        var_dump($l);
                    }
                }
            }
        }
    }
}
此代码将输出一系列结果,可能很快,但完全无序

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr_items));

}   
我的问题是:如果我使用第一个代码,或者我应该尝试使用
递归迭代器
。我的问题是,在第二个选项中很难生成完全相同的结构。
无论如何,任何优化都会很好。

您是否尝试过
递归迭代器::\u construct
上的
模式
参数的任何其他常量?默认值是递归迭代器::只剩下

也许你首先需要的是
SELF\u

$iterator = new RecursiveIteratorIterator(
                new RecursiveArrayIterator($arr_items), 
                RecursiveIteratorIterator::SELF_FIRST);

除了foreach循环中的
recursiveiterator
之外,您还可以使用
$filter->getDepth()
函数来分离子循环、自循环和孙循环


您还可以设置
$filter->setMaxDepth(int$depth)

你所说的“完全无序”是什么意思?@ClémentMalet基本上,结果是在同一级别上按顺序呈现的。所以,我想我会松开深度参考。你实际上是在尝试遍历一棵树。列出并解释可能的遍历顺序的类型。你应该阅读这篇文章,以便能够更具体地解释你的期望。你能发布
$arr_items
$iterator = new RecursiveIteratorIterator(
                new RecursiveArrayIterator($arr_items), 
                RecursiveIteratorIterator::SELF_FIRST);