我遇到循环问题。我传递了帖子在两个数组中的所有类别和类别。
$ cat = [1,2,3,4] //类别ID $ catOfPost = [2,3] //帖子已经有了这些类别
现在我创建了一个选择框,其中包含从$ cat填充的选项。 现在我想将class附加到id与$ catOfPost匹配的选项。
我试过了。
<select name="test[]">
@for($i = 0; $i< count($cat); $i++)
@for($x=0; $x < count($catOfPost); $x++)
<option
@if($catOfPost[$x]->id == $cat[$i]->id )
class="test"
@endif
value="{{$cat[$i]->id}}">{{$cat[$i]->name}}</option>
@endfor
@endfor
</select>
答案 0 :(得分:1)
您需要的是将$ catOfPost作为一个数组,只包含附加到帖子的所有类别的ID。在这种情况下,您的代码将如下所示:
<select name="test[]">
@for($i = 0; $i< count($cat); $i++)
<option
@if(in_array($cat[$i]->id, $catOfPost) )
class="test"
@endif
value="{{$cat[$i]->id}}">{{$cat[$i]->name}}</option>
@endfor
</select>
要创建仅包含ID的数组,您应该使用以下代码:
$catOfPostIds = [];
foreach($catOfPost as $item) {
$catOfPostIds[] = $item->id;
}