2017-02-07 70 views
1

我有這個變量的foreach迭代:捕捉上一次迭代的值在一個循環Laravel PHP

$cart = Cart {#167 ▼ 

    +lines: array:2 [▼ 
    0 => CartLine {#168 ▼ 
     +cart_line_id: 989642 
     +cart_id: 13049301 
     +parent_line_id: null 
     +quantity: 1 
     +article_id: 1164 
     +article_name: "CUSTOMIZED T-SHIRT" 
     +pvp: 29.5 
    } 
    1 => CartLine {#170 ▼ 
     +cart_line_id: 989643 
     +cart_id: 13049301 
     +parent_line_id: 989642 
     +quantity: 2 
     +article_id: 199 
     +article_name: "EXTRA COMPLEMENT" 
     +pvp: 2.5 

    } 
    ] 

} 

這是我laravel foreach循環:

@foreach ($cart->lines as $line) 

@endforeach 

我想這一點:

@foreach ($cart->lines as $line) 
    @if($line->parent_line_id == $line->cart_line_id(previous)) 
    //print extra 
    @endif 
@endforeach 

我想獲取當前項迭代的前一項。

這可能嗎?

+0

什麼版本Laravel您使用的是? –

+0

Laravel 5.3版本 –

回答

2

像這樣:

@foreach ($cart->lines as $index => $line) 
    @if($index > 0 && $line->parent_line_id == $cart->lines[$index - 1]->cart_line_id) 
    //print extra 
    @endif 
@endforeach 

或者使用$loop變量(看到你正在使用5.3):

@foreach ($cart->lines as $line) 
    @if(!$loop->first && $line->parent_line_id == $cart->lines[$loop->index - 1]->cart_line_id) 
    //print extra 
    @endif 
@endforeach