[轉(zhuǎn)]PHP二維數(shù)組去重?cái)?shù)組去重

PHP中提供了array_unique函數(shù)去除一維數(shù)組中的重復(fù)項(xiàng),但是我們實(shí)際的項(xiàng)目開發(fā)中,從數(shù)據(jù)庫select查詢出來的數(shù)組經(jīng)常是二維的;

這里面可能有重復(fù)項(xiàng),這就需要我們自己定義函數(shù)進(jìn)行去除重復(fù)項(xiàng)。

思路
首先獲取第二維數(shù)組的鍵名,保存在一個數(shù)組里面(假設(shè)命名為keyname_Arr);
然后使用一個符號做分隔符(比如‘-’),將二維數(shù)組里面的鍵值拼接成一個字符串,生成一個臨時數(shù)組;
然后使用【array_unique()函數(shù)】比較生成的這個臨時數(shù)組,去掉里面的相同字符串;
然后將去除重復(fù)后的數(shù)組重新組裝成二維數(shù)組:在foreach()里面循環(huán)使用【explode()函數(shù)】,按‘-’分隔符拆分字符串;
同時在foreach()里面對拆分出來的字符串所形成的【新的臨時數(shù)組tempnew】,再使用一個foreach( $tempnew as $tempk =>$tempv),循環(huán)賦值 $output[ $k ][ $keyname_Arr[ $tempk ] ] = tempv ;
最后,$output即是去除重復(fù)后的二維數(shù)組。
來點(diǎn)實(shí)際代碼理解一下
//存儲內(nèi)層數(shù)組的鍵名

$keyname_Arr= array_keys(end($resource_arr));

//使用'-'作為分隔將數(shù)組拼接成字符串

foreach ($resource_arr as $v){
    $v = join("-", $v);
    $temp[] = $v;
}

//去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組

$temp = array_unique($temp);

//再將拆開的數(shù)組重新組裝

foreach ($temp as $k => $v){
    //拆分去重之后的字符串
    $tempnew = explode("-", $v);
    foreach($tempnew as $tempkey => $tempval){
        $output[$k][$keyname_Arr[$tempkey]] = $tempval;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容