|
復(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ì)心的看你會(huì)發(fā)現(xiàn)經(jīng)管重復(fù)的元素被移除了,但是剩下來(lái)這些元素的索引沒有變化,這樣的話如果用for循環(huán)調(diào)用這個(gè)數(shù)組元素的時(shí)候就會(huì)發(fā)生錯(cuò)誤了,因?yàn)閒or循環(huán)的時(shí)候是按照數(shù)字遞增,而且大多數(shù)人用的是count($test_array_unique)來(lái)獲得數(shù)組的大小,這樣就會(huì)造成一些元素被遺漏;
復(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];
}
這樣你不會(huì)看到元素6被輸出,因?yàn)?的索引是8,處理前的數(shù)組和處理后的數(shù)組索引沒有任何改變;
解決辦法:
當(dāng)然,這里解決辦法太多了,我介紹的只是一種我覺得比較簡(jiǎn)單的方法,那就是函數(shù)array_values,array_values是返回?cái)?shù)組的值,跟索引沒有關(guān)系,這樣處理后會(huì)形成一個(gè)新的數(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ù)元素的一點(diǎn)說(shuō)明,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。