PHP二維數組在應用中非常常見,但有時候我們會遇到需要去除重復的情況。例如,我們有一個二維數組來保存多個訂單信息,但由于某些原因,有些訂單被重復保存了,這時候就需要用到去重操作。下面我們就來介紹一下如何用PHP實現二維數組去重。
首先,我們可以使用PHP內置函數array_unique()來對一維數組進行去重。但是,該函數并不能處理二維數組。我們可以先將二維數組轉換成一維數組,然后再使用array_unique()進行去重,最后再將一維數組轉換回二維數組。下面是示例代碼:
// 假設有個二維數組$orderList $orderList = array( array('order_no'=> '10001', 'order_price' => 100.00), array('order_no'=> '10001', 'order_price' => 100.00), array('order_no'=> '10002', 'order_price' => 200.00), array('order_no'=> '10003', 'order_price' => 300.00), array('order_no'=> '10003', 'order_price' => 300.00) ); // 將二維數組轉換成一維數組 $tempList = array(); foreach($orderList as $order){ $tempList[] = join(",", $order); } // 去重 $tempList = array_unique($tempList); // 將一維數組轉換回二維數組 $newOrderList = array(); foreach($tempList as $temp){ $newOrderList[] = explode(",", $temp); }
上述代碼中,我們先將每個訂單信息使用join()函數轉換成字符串存儲在一維數組$tempList中,然后使用array_unique()去重。最后再遍歷一維數組,將字符串使用explode()函數轉換回數組存儲在二維數組$newOrderList中,這樣就完成了二維數組的去重。
還有另外一種方法可以實現二維數組的去重,即使用循環遍歷二維數組,利用PHP的in_array()函數判斷是否重復。下面是示例代碼:
$newOrderList = array(); foreach($orderList as $order){ // 判斷是否已經存在相同訂單信息 if(!in_array($order, $newOrderList)){ $newOrderList[] = $order; } }
上述代碼中,我們使用foreach循環遍歷所有訂單信息,然后用in_array()函數判斷是否已經存在相同訂單信息,如果不存在,則將該訂單信息存儲在新的二維數組$newOrderList中,最終得到的就是去重后的二維數組。
綜上所述,我們可以使用以上兩種方法來實現二維數組的去重。這樣就可以方便地處理各種需要去重的情況了。