限制foreach中的输出

Limit output in foreach

如果城市存在,我想用 CDATA 签入 xml 文件。 如果城市存在一次或多次,那么我想显示一个输入。

我找到了几种检查城市是否存在的方法,但是因为它存在多次,所以显示多次。

下面两种方式都能正确打印出来,但我只需要一个输出:

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. 你可以使用 breaks

break ends execution of the current for, foreach, while, do-while or switch structure.

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;
    }   
}
  1. 您可以在 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  
    }
}