2013-01-07 85 views
-1

我必須使用什麼樣的PHP數組枚舉此數組中獲得:枚舉陣列,並報告連續出現與索引範圍

[0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 42 [5] => 42 [6] => 42 [7] => 42 [8] => 36 [9] => 36 [10] => 0 [11] => 36 [12] => 36 [13] => 36 [14] => 36 [15] => 36 [16] => 42 [17] => 42 [18] => 42 [19] => 42 [20] => 42 [21] => 42 [22] => 42 [23] => 0

本報告:

index 0 to index 4 ... 0 
index 4 to index 8 ... 42 
index 8 to index 16 ... 36 
index 16 to index 23 ... 42 
index 23    ... 0 

在此先感謝尋求任何幫助。

+0

爲什麼不是for循環? ($ x <0; $ x <24; $ x ++)... –

+0

...但是事後做了什麼? ...這是我的頭痛。 – amalafrida

+0

問題中沒有足夠的信息。索引範圍是硬編碼還是動態的?數組的長度是可變的還是總是24個元素? – MrCode

回答

0
$startIndex = 0; 
$endIndex = 0; 
$lastVal = $arr[0]; 

for($i=1; $i<count($arr); $i++) { 
    if ($arr[$i] == $lastVal) { 
     $endIndex = $i; 
    } else { 
     echo "index $startIndex to $endIndex ... $lastVal"; 
     $startIndex = $i + 1; 
     $endIndex = $i + 1; 
     $lastVal = $arr[$i + 1] 
    } 
} 

我知道有一些問題,當你到了數組的末端,如果索引範圍僅爲1長,但這是一般的想法,絕對應該足以讓你去

+0

粗略的一瞥表明可行性;將它放入實驗室,掛上電極,看看它是否會出現。非常感謝您的及時和現場響應。 – amalafrida

+0

完美無瑕。再次感謝您抽出寶貴時間來解決這個問題。 – amalafrida

+0

@amalafrida這就是那些upvote和接受按鈕:) –