|
復(fù)制代碼 代碼如下:
$test_array=array(1,2,3,4,4,5,5,6);
$test_array_unique=array_unique($test_array);
print_r($test_array_unique);
$test_array=array(1,2,3,4,4,5,5,6);
$test_array_unique=array_unique($test_array);
print_r($test_array_unique);
但是至此,不要粗心,事還沒結(jié)束。細(xì)心的看你會發(fā)現(xiàn)經(jīng)管重復(fù)的元素被移除了,但是剩下來這些元素的索引沒有變化,這樣的話如果用for循環(huán)調(diào)用這個數(shù)組元素的時候就會發(fā)生錯誤了,因為for循環(huán)的時候是按照數(shù)字遞增,而且大多數(shù)人用的是count($test_array_unique)來獲得數(shù)組的大小,這樣就會造成一些元素被遺漏;
復(fù)制代碼 代碼如下:
$test_array=array(1,2,3,4,4,5,5,6);
$test_array_unique=array_unique($test_array);
for($i=0;$i<count($test_array_unique);$i++)
{
echo $test_array_unique[$i];
}
$test_array=array(1,2,3,4,4,5,5,6);
$test_array_unique=array_unique($test_array);
for($i=0;$i<count($test_array_unique);$i++)
{
echo $test_array_unique[$i];
}
這樣你不會看到元素6被輸出,因為6的索引是8,處理前的數(shù)組和處理后的數(shù)組索引沒有任何改變;
解決辦法:
當(dāng)然,這里解決辦法太多了,我介紹的只是一種我覺得比較簡單的方法,那就是函數(shù)array_values,array_values是返回數(shù)組的值,跟索引沒有關(guān)系,這樣處理后會形成一個新的數(shù)組,嚴(yán)格按照數(shù)字遞增的索引,這樣再使用for循環(huán)輸出邊一切OK了!
復(fù)制代碼 代碼如下:
$test_array=array(1,2,3,4,4,5,5,6);
$test_array_unique=array_values(array_unique($test_array));
for($i=0;$i<count($test_array_unique);$i++)
{
echo $test_array_unique[$i];
}
php技術(shù):php 移除數(shù)組重復(fù)元素的一點說明,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。