php數(shù)組去重實(shí)例及分析
一維數(shù)組的重復(fù)項(xiàng):
使用array_unique函數(shù)即可,使用實(shí)例如下:
<?php
$aa=array("apple","banana","pear","apple","wail","watermalon");
$bb=array_unique($aa);
print_r($bb);
?>
結(jié)果如下:Array ( [0] => apple [1] =>banana [2] => pear [4] => wail [5]=> watermalon ) 。
二維數(shù)組的重復(fù)項(xiàng):
對于二維數(shù)組咱們分兩種情況討論,一種是因?yàn)槟骋绘I名的值不能重復(fù),刪除重復(fù)項(xiàng);另一種因?yàn)閮?nèi)部的一維數(shù)組不能完全相同,而刪除重復(fù)項(xiàng),下面舉例說明:
㈠因?yàn)槟骋绘I名的值不能重復(fù),刪除重復(fù)項(xiàng)
<?php
function assoc_unique($arr, $key)
{
$tmp_arr = array();
foreach($arr as $k => $v)
{
if(in_array($v[$key],$tmp_arr))//搜索$v[$key]是否在$tmp_arr數(shù)組中存在,若存在返回true
{
unset($arr[$k]);
}
else {
$tmp_arr[] = $v[$key];
}
}
sort($arr); //sort函數(shù)對數(shù)組進(jìn)行排序
return $arr;
}
$aa = array(
array('id' => 123, 'name' =>'張三'),
array('id' => 123, 'name' =>'李四'),
array('id' => 124, 'name' =>'王五'),
array('id' => 125, 'name' =>'趙六'),
array('id' => 126, 'name' =>'趙六')
);
$key = 'id';
assoc_unique(&$aa, $key);
print_r($aa);
?>
顯示結(jié)果為:Array ( [0] => Array ( [id] =>123 [name] => 張三 ) [1] => Array ([id] => 124 [name] => 王五 ) [2]=> Array ( [id] => 125 [name]=> 趙六 ) [3] => Array ( [id]=> 126 [name] => 趙六 ) )
㈡因內(nèi)部的一維數(shù)組不能完全相同,而刪除重復(fù)項(xiàng)
<?php
function array_unique_fb($array2D){
foreach ($array2D as $v){
$v = join(",",$v); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號連接的字符串
$temp[] = $v;
}
$temp =array_unique($temp); //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組
foreach ($temp as $k => $v){
$temp[$k] = explode(",",$v); //再將拆開的數(shù)組重新組裝
}
return $temp;
}
$aa = array(
array('id' => 123, 'name' =>'張三'),
array('id' => 123, 'name' =>'李四'),
array('id' => 124, 'name' =>'王五'),
array('id' => 123, 'name' =>'李四'),
array('id' => 126, 'name' =>'趙六')
);
$bb=array_unique_fb($aa);
print_r($bb)
?>
顯示結(jié)果:Array ( [0] => Array ( [0] =>123 [1] => 張三 ) [1] => Array ( [0]=> 123 [1] => 李四 ) [2]=> Array ( [0] => 124 [1]=> 王五 ) [4] => Array ( [0]=> 126 [1] => 趙六 ))
相關(guān)文章
在TP5數(shù)據(jù)庫中四個字段實(shí)現(xiàn)無限分類的示例
今天小編就為大家分享一篇在TP5數(shù)據(jù)庫中四個字段實(shí)現(xiàn)無限分類的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十三)
這篇文章主要介紹了PHP網(wǎng)頁游戲Xnova(ogame)源碼解讀的造船與防御代碼部分,需要的朋友可以參考下2014-06-06
簡單的php數(shù)據(jù)庫操作類代碼(增,刪,改,查)
這幾天準(zhǔn)備重新學(xué)習(xí),梳理一下知識體系,同時按照功能模塊劃分做一些東西。所以。mysql的操作成為第一個要點(diǎn)。我寫了一個簡單的mysql操作類,實(shí)現(xiàn)數(shù)據(jù)的簡單的增刪改查功能。2013-04-04
php設(shè)計(jì)模式之模板模式實(shí)例分析【星際爭霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之模板模式,基于星際爭霸游戲案例形式分析了php模板模式相關(guān)原理與使用技巧,需要的朋友可以參考下2020-03-03
thinkPHP5(TP5)實(shí)現(xiàn)改寫跳轉(zhuǎn)提示頁面的方法
這篇文章主要介紹了thinkPHP5(TP5)實(shí)現(xiàn)改寫跳轉(zhuǎn)提示頁面的方法,結(jié)合實(shí)例形式分析了thinkPHP5跳轉(zhuǎn)提示頁面的修改步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-10-10
SQL注入寬字節(jié)注入由淺到深學(xué)習(xí)
這篇文章主要為大家介紹了SQL注入寬字節(jié)注入由淺到深學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

