二維數組去重


<?php
/**
 * PHP刪除二維數組中的重復元素
 */
// 對二維數組進行去重復
function more_array_unique($arr)
{
    //先把二維數組中的內層數組的鍵值記錄在在一維數組中
    foreach ($arr[0] as $k => $v) {
        $arr_inner_key[] = $k;
    }
    foreach ($arr as $k => $v) {
        //降維 用implode()也行
        $v = join(",", $v);
        //保留原來的鍵值 $temp[]即為不保留原來鍵值
        $temp[$k] = $v;
    }
    //去重:去掉重復的元素
    $temp = array_unique($temp);
    foreach ($temp as $k => $v) {
        //拆分后的重組 如:Array( [0] => 張三 [1] => 18 )
        $a = explode(",", $v);
        //將原來的鍵與值重新合並
        $arr_after[$k] = array_combine($arr_inner_key, $a);
    }
    return $arr_after;
}

$arr = [
    ['name' => '張三', 'age' => 18],
    ['name' => 'Tom', 'age' => 19],
    ['name' => 'Tom', 'age' => 19],
    ['name' => '張三', 'age' => 50],
    ['name' => '王小二', 'age' => 30],
];
echo "<pre>";
print_r(more_array_unique($arr));


注:

join函數是該函數的別名:implode()。

array_combine函數:表示創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值

array_unique 函數:移除數組中重復的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM