本篇文章主要介紹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 = [ ['name' => '张三', 'age' => 18], ['name' => 'Tom', 'age' => 19], ['name' => 'Tom', 'age' => 19], ['name' => '张三', 'age' => 50], ['name' => '王小二', 'age' => 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 函數:移除數組中重複的值。
最終透過瀏覽器訪問,刪除二維數組重複元素結果如下圖:
#如圖所示,我們透過自訂的more_array_unique方法,將二維數組中完全重複的元素去除掉,並且保留了有用的信息。
這篇文章就是關於PHP刪除二維陣列中的重複元素的具體方法介紹,希望對需要的朋友有幫助!
想要了解更多PHP知識,大家可以追蹤PHP中文網PHP影片教學,歡迎大家參考學習!
以上是PHP要怎麼刪除二維數組中的重複元素? (圖文+影片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!