php數組去重

public function array_unique(){
        $array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333'));
        var_dump($this->unique_arr($array2D,true));
    }

    public function unique_arr($array2D,$stkeep=false,$ndformat=true)
    {
        // 判斷是否保留一級數組鍵 (一級數組鍵可以爲非數字)
        if($stkeep) $stArr = array_keys($array2D);

        // 判斷是否保留二級數組鍵 (所有二級數組鍵必須相同)
        if($ndformat) $ndArr = array_keys(end($array2D));

        //降維,也可以用implode,將一維數組轉換爲用逗號連接的字符串
        foreach ($array2D as $v){
            $v = join(",",$v);
            $temp[] = $v;
        }

        //去掉重複的字符串,也就是重複的一維數組
        $temp = array_unique($temp);

        //再將拆開的數組重新組裝
        foreach ($temp as $k => $v)
        {
            if($stkeep) $k = $stArr[$k];
            if($ndformat)
            {
                $tempArr = explode(",",$v);
                foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
            }
            else $output[$k] = explode(",",$v);
        }

        return $output;
    }


一維數組去重

<?php
$input  = array( "a"  =>  "green" ,  "red" ,  "b"  =>  "green" ,  "blue" ,  "red" );
$result  =  array_unique ( $input );
print_r ( $result );
?> 

Array
(
    [a] => green
    [0] => red
    [1] => blue
)



發佈了42 篇原創文章 · 獲贊 13 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章