简体   繁体   中英

Iterator within a foreach loop

I have a site where we've loaded a hidden input and array with a value that was coming from a php function which we've now removed. Tha variable in question is rownum and the function was:

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

Since the function has been removed, I want to basically add an iterator to my foreach loop to replace it. This was being used to loop through all of our products and associated an incremented row number to each sku.

I have a foreach loop in my laravel blade that loops the skus and I want to use an iterator to index each one that way as an efficient alternative to what that old function was doing.

Here's the current loop/code:

@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

So the $psku->rownum will change and I will have a new variable for the iterator to put in it's place. How can I do this and create an iterator in the foreach loop so that it associates a number to each sku?

Delete unneeded & s from your local variables in foreach loops:

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

Should be

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM