2013-07-17 56 views
2

問題消除重複的連續我occurances想在這裏問的是:PHP數組的數組

反正是有,我可以從下而只保留第一個數組中刪除連續重複?

數組如下所示:

$a=array("1"=>"go","2"=>"stop","3"=>"stop","4"=>"stop","5"=>"stop","6"=>"go","7"=>"go","8"=>"stop"); 

我想是有包含數組:

$a=array("1"=>"go","2"=>"stop","3"=>"go","7"=>"stop"); 

任何建議將幫助。問候。

+0

爲什麼「3」=>「去」你如何得到這個? – 2013-07-17 23:31:47

+0

它會是'...「3」=>「去」,「4」=>「停止」,而不是「」3「=>」去「,」7「=>」停止「)? – Sean

+0

對不起,它應該是「4」=>「停止」 –

回答

2

你可以做類似:

if(current($a) !== $new_val) 
    $a[] = $new_val; 

假設你沒有操縱之間可以使用current()它比每次計算它在count($a)-1

+0

你可以進一步闡述$ new_val從哪裏來? –

+0

'$ new_val'是你添加的值,例如。 「停止」或「去」 – calcinai

7

來檢查值更高效,陣列連續重複?我不知道原生函數,但這個工程。差不多。認爲我理解錯了。在我的函數中,7 =>「go」是6 =>「go」的複製品,8 =>「stop」是新值...?

function filterSuccessiveDuplicates($array) 
{ 
    $result = array(); 

    $lastValue = null; 
    foreach ($array as $key => $value) { 
     // Only add non-duplicate successive values 
     if ($value !== $lastValue) { 
      $result[$key] = $value; 
     } 

     $lastValue = $value; 
    } 

    return $result; 
} 
+0

感謝很多人工作像一個魅力:) –

+0

+1的不錯風格:) – 2013-07-17 23:49:33

+0

很高興聽到它幫助;-) – UrGuardian4ngel