PHP - 组合多个 while 循环的输出

PHP - Combine outputs from multipe while loops

我需要 return 一个单一的结果,它结合了通过多个 WHILE 循环从多个数组创建的语句。

我有四个数组,正在尝试根据条件获得不同的输出。这些数组都由彼此相同的键构成,键对应一个事件。其中一个数组的每个键可能有多个值,如果它包含多个值,则需要检查此特定数组中的值的数量以使用不同的输出结构。

foreach ($closures as $closure) {

//stuff

    for ( $i = 0; $i < $count; $i++){        
        $vcount = count( $locations[$i] );

        while ( $vcount < 2 ) {
            $result = "The ".$venue[$i]." has been reserved for an <a href=".$eventURLs[$i].">event</a> today from ".$startTime[$i]." - ".$endTime[$i].".<br>";
            //print_r($result); //looks good printed...  
            break;
        }

        while ($vcount > 1 ) {
            $result =  "The ".$venue[$i]."s have been reserved for an <a href=".$eventURLs[$i].">event</a> today from ".$startTime[$i]." - ".$endTime[$i].".<br>";
            //print_r($result); //looks good printed... 
            break;
        }
    }
    return $result;
    break;
}

我已经尝试了 "break," 的所有组合,当然它给了我不同的输出,但 none 是正确的。 我试过为每个 while 循环($result1 和 $result2)分配不同的变量。 我试过在循环内外用 $result[$i] 替换 $result 。 我试过移动 "return...".

的位置

虽然如图所示使用 print_r 它显示完美,但我不知道如何将这些结果放入单个输出中。

我只能通过我的短代码获得第一个结果输出,并且在尝试将它们组合成如下语句时只能设法获得两个结果(每个循环一个):

$message = "".result1."".result2."";

您可以使用 .= 赋值运算符将结果值相互连接起来

foreach ($closures as $closure) {

//stuff

for ( $i = 0; $i < $count; $i++){        
    $vcount = count( $locations[$i] );
    // initiate the result
    $result = "";
    while ( $vcount < 2 ) {
        // concatinate the value to $result
        $result .= "The ".$venue[$i]." has been reserved for an <a href=".$eventURLs[$i].">event</a> today from ".$startTime[$i]." - ".$endTime[$i].".<br>";
        //print_r($result); //looks good printed...  
        break;
    }

    while ($vcount > 1 ) {
        // concatinate the value to $result again
        $result .=  "The ".$venue[$i]."s have been reserved for an <a href=".$eventURLs[$i].">event</a> today from ".$startTime[$i]." - ".$endTime[$i].".<br>";
        //print_r($result); //looks good printed... 
        break;
    }
}
return $result;
break;
}