Ограничить вывод в foreach - PullRequest
       39

Ограничить вывод в foreach

0 голосов
/ 17 октября 2018

Я хочу проверить файл xml с CDATA, если города существуют.Если города существуют один или несколько раз, я хочу отобразить ввод.

Я нашел несколько способов проверить, существует город или нет, однако, поскольку он существует несколько раз, он отображается несколько раз.

В обоих случаях печатается правильно, но мне нужен только один вывод:

foreach($paradasarray as $parada){
    if (substr_count($parada->localidad, 'Benalmádena') > 0) {
        echo 'Benalmádena Costa';
    }
    if (strpos($parada->localidad, 'Benalmádena') !== false) {
        echo 'Benalmádena Costa';
    }   
}

Both ways outputs like this:
Benalmádena CostaBenalmádena CostaBenalmádena CostaBenalmádena 
CostaBenalmádena CostaBenalmádena CostaBenalmádena CostaBenalmádena 
CostaBenalmádena CostaBenalmádena CostaBenalmádena CostaBenalmádena 
CostaBenalmádena CostaBenalmádena CostaBenalmádena CostaBenalmádena 
CostaBenalmádena CostaBenalmádena CostaBenalmádena CostaBenalmádena 

1 Ответ

0 голосов
/ 17 октября 2018

Несколько способов сделать это.

  1. Вы можете использовать breaks

break заканчивает выполнение текущего for, foreach,while, do-while или структура переключателя.

foreach($paradasarray as $parada){
    if (substr_count($parada->localidad, 'Benalmádena') > 0) {
        echo 'Benalmádena Costa';
        break;
    }
    if (strpos($parada->localidad, 'Benalmádena') !== false) {
        echo 'Benalmádena Costa';
        break;
    }   
}
Вы можете установить логическое значение перед foreach и изменить его при печати benalmadena costa.

Это удобно, если вы не хотите, чтобы foreach заканчивался.

$benalmadena=false;
foreach($paradasarray as $parada){
    if($benalmadena==false){
       if (substr_count($parada->localidad, 'Benalmádena') > 0) {
            echo 'Benalmádena Costa';
            $benalmadena=true;
        }

        if (strpos($parada->localidad, 'Benalmádena') !== false) {
            echo 'Benalmádena Costa';
            $benalmadena=true;
        }
    }else{
        //Other code you want to happen even after Benalmadena is printed  
    }
}
...