在foreach中限制输出

时间:2018-10-17 08:04:55

标签: php foreach limit strpos

如果城市存在,我想使用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 个答案:

答案 0 :(得分:1)

多种方法。

  1. 您可以使用breaks
  

break终止当前的foreach,while,do-while或switch结构的执行。

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  
    }
}