2011-02-28 99 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