首頁 >每日程式設計 >PHP知識 >PHP要怎麼刪除二維數組中的重複元素? (圖文+影片)

PHP要怎麼刪除二維數組中的重複元素? (圖文+影片)

藏色散人
藏色散人原創
2018-10-10 13:58:115657瀏覽

本篇文章主要介紹PHP刪除二維陣列中重複元素的具體實作方法!

在之前的文章【PHP怎麼刪除陣列中重複元素? 】中已經為大家介紹PHP刪除普通一維數組的方法,需要的朋友可以先參考學習下。

簡單的說,二維數組也就是數組的數組,你需要兩個索引來選取元素。

下面我們透過具體的程式碼範例,為大家詳細介紹刪除二維陣列中重複元素的方法!

<?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 = [
    [&#39;name&#39; => &#39;张三&#39;, &#39;age&#39; => 18],
    [&#39;name&#39; => &#39;Tom&#39;, &#39;age&#39; => 19],
    [&#39;name&#39; => &#39;Tom&#39;, &#39;age&#39; => 19],
    [&#39;name&#39; => &#39;张三&#39;, &#39;age&#39; => 50],
    [&#39;name&#39; => &#39;王小二&#39;, &#39;age&#39; => 30],
];
echo "<pre class="brush:php;toolbar:false">";
print_r(more_array_unique($arr));

在此段程式碼中,我們定義了一個$arr的二維數組,其中有兩對重複元素,“張三”和“Tom”,但是他們的年齡有所不同。

大家應該都知道array_unique()函數只適用於一維數組,那麼二維數組就需要我們自己定義一個函數方法,不過也可以用到array_unique()函數。

如上述程式碼範例中,我們定義了more_array_unique的方法,用來實作刪除二維陣列中重複元素。

註:

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

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

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

最終透過瀏覽器訪問,刪除二維數組重複元素結果如下圖:

PHP要怎麼刪除二維數組中的重複元素? (圖文+影片)

#如圖所示,我們透過自訂的more_array_unique方法,將二維數組中完全重複的元素去除掉,並且保留了有用的信息。

這篇文章就是關於PHP刪除二維陣列中的重複元素的具體方法介紹,希望對需要的朋友有幫助!

想要了解更多PHP知識,大家可以追蹤PHP中文網PHP影片教學,歡迎大家參考學習!

以上是PHP要怎麼刪除二維數組中的重複元素? (圖文+影片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn