foreach循环中的迭代器

时间:2017-11-08 17:15:11

标签: php laravel loops foreach

我有一个网站,我们已经加载了一个隐藏的输入和数组,其值来自我们现在删除的php函数。有问题的Tha变量是array.sum { |e| e['tarifa'] } #=> 261.2 ,函数是:

rownum

由于函数已被删除,我想基本上将一个迭代器添加到我的foreach循环中以替换它。这用于遍历我们所有的产品,并将增加的行号与每个sku相关联。

我的laravel刀片中有一个foreach循环,它循环skus,我想使用迭代器将每个方法编入索引,作为旧函数所做的有效替代。

这是当前的循环/代码:

public function setskuRosNums()
{
$r = 1;
foreach($this->pgroups as &$pgroup){
    foreach($pgroup->pskus as &$psku){
        $psku->rownum = $r;
        $r++;
    }
}
}

所以@foreach ($pgroup->pskus as $psku) <?php $tempdata[$psku->rownum] = $psku ?> <tr> <td style="font-weight: 500; line-height: 30px; font-size: 14px;">{{ $psku->frame_fmt }}</td> <input type="hidden" name="rownum" value="{{$psku->rownum}}" /> </td></tr> @endforeach 会改变,我会有一个新变量供迭代器放入它的位置。我怎么能这样做并在foreach循环中创建一个迭代器,以便它将一个数字与每个sku相关联?

1 个答案:

答案 0 :(得分:2)

&循环中的本地变量中删除不需要的foreach

foreach($this->pgroups as &$pgroup){
    foreach($pgroup->pskus as &$psku){
        $psku->rownum = $r;
        $r++;
    }
}

应该是

foreach($this->pgroups as $pgroup){ // & deleted
    foreach($pgroup->pskus as $psku){ // & deleted
        $psku->rownum = $r;
        $r++;
    }
}