PHP二維數(shù)組的去重問(wèn)題解析
更新時(shí)間:2011年07月17日 16:41:15 作者:
PHP數(shù)組去除重復(fù)項(xiàng)有個(gè)內(nèi)置函數(shù)array_unique(),但是php的array_unique函數(shù)只適用于一維數(shù)組,對(duì)多維數(shù)組并不適用,以下提供一個(gè)二維數(shù)組的array_unique函數(shù)。
之前寫(xiě)了一篇關(guān)于數(shù)組去重的文章,但是僅限于一維數(shù)組。下面的函數(shù)可以用于二維數(shù)組:
//二維數(shù)組去掉重復(fù)值
function array_unique_fb($array2D)
{
foreach ($array2D as $v)
{
$v = join(",",$v); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串
$temp[] = $v;
}
$temp = array_unique($temp); //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組
foreach ($temp as $k => $v)
{
$temp[$k] = explode(",",$v); //再將拆開(kāi)的數(shù)組重新組裝
}
return $temp;
}
如果你想保留數(shù)組的鍵值,可以用下面的函數(shù):
//二維數(shù)組去掉重復(fù)值 并保留鍵值
function array_unique_fb($array2D)
{
foreach ($array2D as $k=>$v)
{
$v = join(",",$v); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串
$temp[$k] = $v;
}
$temp = array_unique($temp); //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組
foreach ($temp as $k => $v)
{
$array=explode(",",$v); //再將拆開(kāi)的數(shù)組重新組裝
$temp2[$k]["id"] =$array[0];
$temp2[$k]["litpic"] =$array[1];
$temp2[$k]["title"] =$array[2];
$temp2[$k]["address"] =$array[3];
$temp2[$k]["starttime"] =$array[4];
$temp2[$k]["endtime"] =$array[5];
$temp2[$k]["classid"] =$array[6];
$temp2[$k]["ename"] =$array[7];
}
return $temp2;
}
大概就這樣啦。
二維數(shù)組去重
<?php
$arr = array(
array('id' => 1,'name' => 'aaa'),
array('id' => 2,'name' => 'bbb'),
array('id' => 3,'name' => 'ccc'),
array('id' => 4,'name' => 'ddd'),
array('id' => 5,'name' => 'ccc'),
array('id' => 6,'name' => 'aaa'),
array('id' => 7,'name' => 'bbb'),
);
function assoc_unique(&$arr, $key)
{
$rAr=array();
for($i=0;$i<count($arr);$i++)
{
if(!isset($rAr[$arr[$i][$key]]))
{
$rAr[$arr[$i][$key]]=$arr[$i];
}
}
$arr=array_values($rAr);
}
assoc_unique(&$arr,'name');
print_r($arr);
?>
復(fù)制代碼 代碼如下:
//二維數(shù)組去掉重復(fù)值
function array_unique_fb($array2D)
{
foreach ($array2D as $v)
{
$v = join(",",$v); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串
$temp[] = $v;
}
$temp = array_unique($temp); //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組
foreach ($temp as $k => $v)
{
$temp[$k] = explode(",",$v); //再將拆開(kāi)的數(shù)組重新組裝
}
return $temp;
}
如果你想保留數(shù)組的鍵值,可以用下面的函數(shù):
復(fù)制代碼 代碼如下:
//二維數(shù)組去掉重復(fù)值 并保留鍵值
function array_unique_fb($array2D)
{
foreach ($array2D as $k=>$v)
{
$v = join(",",$v); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串
$temp[$k] = $v;
}
$temp = array_unique($temp); //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組
foreach ($temp as $k => $v)
{
$array=explode(",",$v); //再將拆開(kāi)的數(shù)組重新組裝
$temp2[$k]["id"] =$array[0];
$temp2[$k]["litpic"] =$array[1];
$temp2[$k]["title"] =$array[2];
$temp2[$k]["address"] =$array[3];
$temp2[$k]["starttime"] =$array[4];
$temp2[$k]["endtime"] =$array[5];
$temp2[$k]["classid"] =$array[6];
$temp2[$k]["ename"] =$array[7];
}
return $temp2;
}
大概就這樣啦。
二維數(shù)組去重
復(fù)制代碼 代碼如下:
<?php
$arr = array(
array('id' => 1,'name' => 'aaa'),
array('id' => 2,'name' => 'bbb'),
array('id' => 3,'name' => 'ccc'),
array('id' => 4,'name' => 'ddd'),
array('id' => 5,'name' => 'ccc'),
array('id' => 6,'name' => 'aaa'),
array('id' => 7,'name' => 'bbb'),
);
function assoc_unique(&$arr, $key)
{
$rAr=array();
for($i=0;$i<count($arr);$i++)
{
if(!isset($rAr[$arr[$i][$key]]))
{
$rAr[$arr[$i][$key]]=$arr[$i];
}
}
$arr=array_values($rAr);
}
assoc_unique(&$arr,'name');
print_r($arr);
?>
您可能感興趣的文章:
相關(guān)文章
PHP實(shí)現(xiàn)對(duì)png圖像進(jìn)行縮放的方法(支持透明背景)
這篇文章主要介紹了PHP實(shí)現(xiàn)對(duì)png圖像進(jìn)行縮放的方法(支持透明背景),可實(shí)現(xiàn)php針對(duì)png圖像的縮放功能,且支持透明背景,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
兩級(jí)聯(lián)動(dòng)select刷新后其值保持不變的實(shí)現(xiàn)方法
兩級(jí)聯(lián)動(dòng)select刷新后,select值保持不變即點(diǎn)擊提交按鈕后,頁(yè)面select中繼續(xù)維持提交前的值,下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-01-01
php將12小時(shí)制轉(zhuǎn)換成24小時(shí)制的方法
這篇文章主要介紹了php將12小時(shí)制轉(zhuǎn)換成24小時(shí)制的方法,涉及php時(shí)間操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
PHP+Mysql樹(shù)型結(jié)構(gòu)(無(wú)限分類)數(shù)據(jù)庫(kù)設(shè)計(jì)的2種方式實(shí)例
這篇文章主要介紹了PHP+Mysql樹(shù)型結(jié)構(gòu)(無(wú)限分類)數(shù)據(jù)庫(kù)設(shè)計(jì)的2種方式實(shí)例,以及優(yōu)劣分析、探討,需要的朋友可以參考下2014-07-07
解析獲取優(yōu)酷視頻真實(shí)下載地址的PHP源代碼
本篇文章是對(duì)獲取優(yōu)酷視頻真實(shí)下載地址的PHP源代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例分析
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)的方法,結(jié)合實(shí)例形式分析了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中類的聲明與實(shí)例化及類中方法的調(diào)用技巧,需要的朋友可以參考下2016-01-01
在WordPress中使用wp_count_posts函數(shù)來(lái)統(tǒng)計(jì)文章數(shù)量
這篇文章主要介紹了在WordPress中使用wp_count_posts函數(shù)來(lái)統(tǒng)計(jì)文章數(shù)量的方法,同時(shí)也可以統(tǒng)計(jì)草稿及頁(yè)面的數(shù)量,相當(dāng)實(shí)用,需要的朋友可以參考下2016-01-01

