внутренний цикл foreach, проверьте условие и разорвать только внутренний цикл в php - PullRequest
1 голос
/ 14 апреля 2019

У меня есть два вложенных цикла foreach, я только хочу, чтобы внутренний цикл проверял условие.Если оно удовлетворяет или нет, завершите внутренний цикл и вернитесь к внешнему циклу.

В моем состоянии внутренний цикл всегда должен запускаться один раз, как я понимаю мою проблему.

Проблема: два массива.Сначала имея все варианты.Второе только выбрав.Теперь посчитайте идентификатор.Если соответствует => Печать отмечена, Остальное => Не проверено.

Я пробовал перерыв;но внутренний цикл проверяет только 1-й элемент, после чего выполняются все итерации в остальной части.

@php
foreach($propertyAmenities as $amenity){
   foreach($property->amenities as $new){ 
        if( ($amenity->type == 'amenity') && ($amenity->id == $new->id) ){
        @endphp
        <label class="checkbox-inline control-label">
            <input type="checkbox" name="amenity[]" value="{{$amenity->id}}" {{'checked'}}>{{ $amenity->name }}
        </label>                         
        @php break;                       
          } 
        elseif(($amenity->type == 'amenity')){ @endphp
            <label class="checkbox-inline control-label">
                <input type="checkbox" name="amenity[]" value="{{$amenity->id}}">{{ $amenity->name }}
            </label> 
        @php break;
            }                                                                    
         }
      }
@endphp

Первый раз он проверяет и печатает «флажок» в следующий раз, когда выполняется только часть ifelse.я не знаю, почему проверяется только первое.

все остальное остается непроверенным.

1 Ответ

1 голос
/ 14 апреля 2019

Вы можете упростить свой код, передав выбранные параметры в виде массива в представлении.


// Given $selectedOptions = [1, 2, 3, 4...]
@foreach($property->amenities as $amenity)
    <label class="checkbox-inline control-label">
        <input type="checkbox" 
               name="amenity[]" 
               value="{{$amenity->id}}"
               @if (in_array($amenity->id, $selectedOptions))
                   checked="checked"
               @endif
        >{{ $amenity->name }}
    </label>  
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...