在循环中捕获先前迭代的值 Laravel PHP

Ant*_*les 4 php laravel laravel-5 laravel-5.3

我有一个带有此变量的 foreach 迭代:

\n\n
$cart = Cart {#167 \xe2\x96\xbc\n\n  +lines: array:2 [\xe2\x96\xbc\n    0 => CartLine {#168 \xe2\x96\xbc\n      +cart_line_id: 989642\n      +cart_id: 13049301\n      +parent_line_id: null\n      +quantity: 1\n      +article_id: 1164\n      +article_name: "CUSTOMIZED T-SHIRT"\n      +pvp: 29.5\n    }\n    1 => CartLine {#170 \xe2\x96\xbc\n      +cart_line_id: 989643\n      +cart_id: 13049301\n      +parent_line_id: 989642\n      +quantity: 2\n      +article_id: 199\n      +article_name: "EXTRA COMPLEMENT"\n      +pvp: 2.5\n\n    }\n  ]\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 laravel foreach 循环:

\n\n
@foreach ($cart->lines as $line)\n\n@endforeach\n
Run Code Online (Sandbox Code Playgroud)\n\n

我要这个:

\n\n
@foreach ($cart->lines as $line)\n   @if($line->parent_line_id == $line->cart_line_id(previous))\n     //print extra\n   @endif\n@endforeach\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想获取当前项目迭代的前一个项目。

\n\n

这个有可能?

\n

Dev*_*evK 6

像这样:

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

或者使用$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
Run Code Online (Sandbox Code Playgroud)