2012-07-15 48 views
1

我想採取一個項目,並把它的另一之下,像這樣三個PHP的陣列組合:PHP循環需要每次增加一個以上。滿足條件時如何退出循環?

while ($i <= $no) 
{ 
     $results[$i] = $blah[$i]; 
     $i++; 
     $results[$i] = $thing[$i]; 
     $i++; 
     $results[$i] = $something[$i]; 
     $i++; 
} 

但是這個問題$無可以,因爲我需要$增量I三次突破在每個循環中。

最終結果:

array (size=12) 
    1 => 
    array (size=4) (from $blah) 
    2 => 
    array (size=4) (from $thing) 
    3 => 
    array (size=4) (from $something) 
    4 => 
    array (size=4) (from $blah) 

...這需要持續到$無大小滿足

+0

幾乎可以肯定實現這一目標的一個更好的方法。你可以編輯問題來顯示/描述你想要的最終結果嗎? – Utkanos 2012-07-15 14:14:40

+0

即使超過$ $ no,循環仍然會退出,但即使在循環迭代過程中是否允許超過$ $ no? – 2012-07-15 14:15:23

回答

2

簡單因子評分,你能不能做這樣的事???

while ($i <= $no) 
     { 
       $results[$i] = $blah[$i]; 
       $i++; 
       if($i > $no){ break;} 
       $results[$i] = $thing[$i]; 
       $i++; 
       if($i > $no){ break;} 
       $results[$i] = $something[$i]; 
       $i++; 
     } 
+0

是真的,我的壞...將編輯它;) – Mathlight 2012-07-15 14:25:06

1

您正在尋找的break statement。您可能還需要append到結果陣列,而不是指定一個特定的指數:

$results = array(); 
while ($i <= $no) { 
    $results[$i] = $blah[$i]; 
    $i++; 
    if ($i > $no) break; 
    $results[] = $thing[$i]; // just append 
    $i++; 
    if ($i > $no) break; 
    array_push($results, $something[$i]); // append with array_push 
    $i++; 
} 
+0

在新的數組鍵中返回3個結果(最多$ no)。這意味着我需要的結果是結果的3倍。 (編輯:對不起,不知道如何得到這個代碼尋找右) '陣列(大小= 10) 0 => 陣列(大小= 3) 0 => 陣列(大小= 4)(由$等等) 1 => 陣列(大小= 4)(從$東西) 2 => 陣列(大小= 4)(從$東西) 1 => 陣列(大小= 3) 0 => 陣列(大小= 4)(from $ blah)' – flux 2012-07-15 14:34:50

+0

哦,你是對的。刪除了短版。長一點應該正是你需要的。 – phihag 2012-07-15 14:38:40

-1

爲什麼不簡化:

$results = array_push($blah, $thing, $something); 
// appends the arrays together 

$results = array_merge($blah, $thing, $something); 
// merges arrays together 
相關問題