2015-11-25 10 views

risposta

5

SoHo,

Il modo più veloce è quello di confrontare l'elemento corrente con il primo elemento della matrice:

@foreach($items as $item) 
    @if ($item == reset($items)) First Item: @endif 
    <h4>{{ $item->program_name }}</h4> 
@endforeach 

Or in caso contrario, se non è un array associativo, è possibile controllare il valore dell'indice in base alla risposta sopra, ma ciò avverrebbe non funziona se l'array è associativo.

+0

Le soluzioni both, yours e @ gumma-mocciaro funzionano nel mio caso. Questo è più corto. – SoHo

+0

ha funzionato perfettamente per me! – Brnovich

2

Basta prendere il valore della chiave

@foreach($items as $index => $item) 
    @if($index == 0) 
     ... 
    @endif 
    <h4>{{ $item->program_name }}</h4> 
@endforeach 
14

laravel 5.3 effettua una $loop variabile disponibile all'interno foreach loop.

Con l'indice del ciclo si può fare:

@foreach ($users as $user) 
    @if ($loop->first) 
     This is the first iteration. 
    @endif 

    @if ($loop->last) 
     This is the last iteration. 
    @endif 

    <p>This is user {{ $user->id }}</p> 
@endforeach 

Documenti: https://laravel.com/docs/5.3/blade#the-loop-variable

0

Il problema principale con la risposta di Liam Wiltshire è la prestazione perché:

  1. reset ($ articoli riavvolge il puntatore della collezione $ articoli ancora e ancora ad ogni loop ... sempre con lo stesso risultato.

  2. Sia $ item e il risultato di reset ($ item) sono oggetti, quindi $ item == reset ($ items) richiede un confronto completo dei suoi attributi ... chiedendo più tempo del processore .

Un modo più efficace ed elegante per farlo - come Shannon suggeriscono s- è quello di utilizzare $ ciclo variabile della lama:

@foreach($items as $item) 
    @if ($loop->first) First Item: @endif 
    <h4>{{ $item->program_name }}</h4> 
@endforeach 

Se si desidera applicare un formato speciale al primo elemento, quindi forse potresti fare qualcosa di simile (usando l'operatore condizionale ternario ?:):

Nota l'uso di {!! e !!} tag invece di {{}} notazione per evitare html codifica delle virgolette doppie di speciale stringa.

Saluti.

Problemi correlati