php 移除數(shù)組重復元素的一點說明
更新時間:2008年11月27日 14:34:27 作者:
PHP中移除數(shù)組重復元素用的函數(shù)是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);
$test_array=array(1,2,3,4,4,5,5,6);
$test_array_unique=array_unique($test_array);
print_r($test_array_unique);
但是至此,不要粗心,事還沒結(jié)束。細心的看你會發(fā)現(xiàn)經(jīng)管重復的元素被移除了,但是剩下來這些元素的索引沒有變化,這樣的話如果用for循環(huán)調(diào)用這個數(shù)組元素的時候就會發(fā)生錯誤了,因為for循環(huán)的時候是按照數(shù)字遞增,而且大多數(shù)人用的是count($test_array_unique)來獲得數(shù)組的大小,這樣就會造成一些元素被遺漏;
$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ù)組索引沒有任何改變;
解決辦法:
當然,這里解決辦法太多了,我介紹的只是一種我覺得比較簡單的方法,那就是函數(shù)array_values,array_values是返回數(shù)組的值,跟索引沒有關(guān)系,這樣處理后會形成一個新的數(shù)組,嚴格按照數(shù)字遞增的索引,這樣再使用for循環(huán)輸出邊一切OK了!
$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];
}
復制代碼 代碼如下:
$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);
復制代碼 代碼如下:
$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];
}
解決辦法:
當然,這里解決辦法太多了,我介紹的只是一種我覺得比較簡單的方法,那就是函數(shù)array_values,array_values是返回數(shù)組的值,跟索引沒有關(guān)系,這樣處理后會形成一個新的數(shù)組,嚴格按照數(shù)字遞增的索引,這樣再使用for循環(huán)輸出邊一切OK了!
復制代碼 代碼如下:
$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];
}
相關(guān)文章
php empty,isset,is_null判斷比較(差異與異同)
做php開發(fā)時候,想必在使用:empty,isset,is_null 這幾個函數(shù)時候,遇到一些問題。甚至給自己的程序帶來一些安全隱患的bug。很多時候,對于isset,empty都認為差不多。因此開發(fā)時候,就沒有注意,一段作為流程判斷時候,就出現(xiàn)bug問題了。2010-10-10PHP實現(xiàn)微信JS-SDK接口選擇相冊及拍照并上傳的方法
這篇文章主要介紹了PHP實現(xiàn)微信JS-SDK接口選擇相冊及拍照并上傳的方法,涉及php微信接口的調(diào)用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-12-12php使用指定編碼導出mysql數(shù)據(jù)到csv文件的方法
這篇文章主要介紹了php使用指定編碼導出mysql數(shù)據(jù)到csv文件的方法,涉及php查詢mysql及操作csv文件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03php 利用socket發(fā)送HTTP請求(GET,POST)
作為php程序員一定會接觸http協(xié)議,也只有深入了解http協(xié)議,編程水平才會更進一步。最近我一直在學習php的關(guān)于http的編程,許多東西恍然大悟,受益匪淺。希望分享給大家。本文需要有一定http基礎(chǔ)的開發(fā)者閱讀。2015-08-08