Laravel foreach 中的独特/不同

Tom*_* N. 4 php foreach distinct laravel

在 Laravel 中,我有一个带有一些值的下拉选择框,但是我围绕该框的 foreach 循环显示了 的每个实例$psku->frame_desc,正如它应该的那样。但是,我希望它只显示不同的值。

这是代码:

<select style="margin-top:10px; max-width:200px;" >
<option value="" selected data-default>Sort by type:
</option>
    @foreach ($orderFormData->pgroups as $pgroup)
      @foreach ($pgroup->pskus as $psku)
        <option value="{{ $psku->frame_desc }}">{{ $psku->frame_desc }}</option>
      @endforeach
    @endforeach
Run Code Online (Sandbox Code Playgroud)

在 laravel 中像这样在 foreach 中声明不同或唯一值的最佳方法是什么?

ntz*_*tzm 7

假设这些是集合,您可以执行以下操作:

@foreach ($orderFormData->pgroups as $pgroup)
  @foreach ($pgroup->pskus->unique('frame_desc') as $psku)
    <option value="{{ $psku->frame_desc }}">{{ $psku->frame_desc }}</option>
  @endforeach
@endforeach
Run Code Online (Sandbox Code Playgroud)

文档

如果它们不是集合,您可以将它们设为集合:

@foreach ($orderFormData->pgroups as $pgroup)
  @foreach (collect($pgroup->pskus)->unique('frame_desc') as $psku)
    <option value="{{ $psku->frame_desc }}">{{ $psku->frame_desc }}</option>
  @endforeach
@endforeach
Run Code Online (Sandbox Code Playgroud)