2017-05-19 240 views
0

我怎樣才能使使用for循環下圖所示的二維數組:PHP二維數組

$test = array ('D','D','D','D','C','C','D','D'); 

輸出應該是這樣的:

$output = array( 0 => array('D','D','D','D'), 1 => array('D','D')); 

感謝您的幫助。

這裏是我的代碼:

$test = array('D','D','D','D', 'C','C','D', 'D'); 
$output = array(); 
$myarray = array(); 
for ($i= 0; $i < count($test); $i++){ 
    if($test[$i] == 'D'){ 
     array_push($myarray , $test[$i]); 
    } else { 
     array_push($output,$myarray); 
    } 
} 

//OUTPUT: $output = (array(0 => array('D','D','D','D'), 1 => array('D','D','D','D')); 
+2

SO不是免費的編碼服務。你必須嘗試自己解決問題。如果無法正常工作,請發佈您嘗試的內容,我們會幫助您解決問題。 – Barmar

+1

這應該是一個簡單的'foreach'循環。你不斷推送'D'元素到一個數組中。當你得到一個「C」值時,你將該數組推入結果數組,併爲下一組'D'元素開始一個新數組。 – Barmar

+1

你還沒有提供該模式。你想在定義的數組中只找到連續的'D',並將它推入一個新的數組或者什麼? –

回答

0

這可以只使用一個foreach循環來實現。

<?php 

$test = array ('D','C','D','D','D','D','C','C','D','D','C','D'); 

$temp = array(); 
$result = array(); 
foreach($test as $value){ 
    if($value != 'D' && !empty($temp)){ 
     array_push($result, $temp); 
     $temp = array(); 
    } 
    else{ 
     array_push($temp, $value); 
    } 
} 

if(!empty($temp)){ 
    array_push($result, $temp); 
} 

print_r($result); 
+0

感謝Chinito和所有......我認爲'對每個'是我需要的。=) – eskapadero

+0

@eskapadero'for'和'foreach'是等價的。問題在於,每次開始新運行'D'時,都沒有重置臨時陣列。 – Barmar

+0

是Barmar,我錯過了重置臨時陣列..感謝您指出這一點。 – eskapadero