Home > database >  Can I return different values ​with for in foreach?
Can I return different values ​with for in foreach?

Time:06-10

Every time the foreach returns, it writes the element with values[0] because $i=0. I want foreach to print values[0] when it returns first and values[1] when it returns second. Where exactly should I do the for loop?

@foreach ($videohistories as $videohistory)
                <tr>
                    <td>{{ date("Y-m-d H:i:s", $videohistory->create_time) }}</td>
                    <td>{{ date("Y-m-d H:i:s", $videohistory->end_time) }}</td>
                    <td>{{ diff_date_format($videohistory->begin_time, $videohistory->end_time, "%H sa %i dk. %s sn") }}</td>
                    <td>
                        @for($i = 0; $i < $values; $i  ) {{$values[$i]}} @break @endfor </td>
                </tr>
                @endforeach

CodePudding user response:

You are doing a for loop in each iteration and then breaking out at the first iteration of that loop. If you want to print the i-th element based on the foreach iteration you need to use the $loop variable

@foreach ($videohistories as $videohistory)
     <tr>
         <td>{{ date("Y-m-d H:i:s", $videohistory->create_time) }}</td>
         <td>{{ date("Y-m-d H:i:s", $videohistory->end_time) }}</td>
         <td>{{ diff_date_format($videohistory->begin_time, $videohistory->end_time, "%H sa %i dk. %s sn") }}</td>
         <td>
             @if (isset($values[$loop->index])) 
                 {{$values[$loop->index]}}
             @endif
         </td>
    </tr>
@endforeach
  • Related