2011-02-28 55 views
0

我想解決這個問題,我有一個特定範圍內的值的唯一數組。採取這種情況:生成具有唯一條目的固定值數組(90)。如果你發現重複,刪除,重新索引,並填補空白。我遇到了條件語句不允許你與範圍之外的數組進行交互的問題。我知道array_unique,但它不會填補這些差距,只是讓他們。我如何填補這些空白?PHP陣列的範圍問題

編輯:這是一個關於方案範圍的noobish問題。一個簡單的while循環表明,如果條件語句可以修改超出範圍的變量。
?>

+1

「我遇到了條件語句不允許你與範圍之外的數組進行交互的問題」,這個我根本就沒有得到。你能顯示一些代碼嗎? – 2011-02-28 15:26:38

+0

顯示你的數組結構 – 2011-02-28 15:26:59

回答

0

不知道這是否會有所幫助,但您可以隨時重複數組,一旦刪除重複項並重新索引它,如果這是您的意思?

0

確保我理解這一點 - 您不關心數組的關鍵元素?

你仍然可以使用array_unique();

// $array(); is already defined with elements in it 
$temp_array = array_unique($array); 
if (!empty ($temp_array)) { 
    unset($array); 
    $array = array(); 
    foreach ($temp_array as $t) { 
     array_push($array, $t); 
    } 
} 

你可能想在那裏放置一個子句,如果它超過了90個元素。

+0

等待,如果你在一個條件內部定義一個數組(或任何變量),它是否有它自己的作用域,所以數組只能在'if'語句內部訪問? – Nik 2011-02-28 15:35:25

+1

在這種情況下,只有當您的原始數組爲空時,您才能夠進入if語句。 – Duniyadnd 2011-02-28 15:40:32

+0

我問的是如果我這樣做'如果(array_search($ array_value,$ array)){$ array [$ key] = $ unique_value;}'將工作,如果這是有道理的。 – Nik 2011-02-28 15:42:00