在PHP的開發中,常常需要對資料進行處理,如去重、排序、篩選等等。其中,處理二維數組是非常常見的操作。那麼,如何快速移除二維數組中的重複資料呢?以下將為你介紹幾種實作方法。
方法一:使用array_unique()函數
array_unique()函數可以快速移除陣列中的重複數據,具體實作方法如下:
$array = array( array('id' => 1, 'name' => '小明'), array('id' => 2, 'name' => '小红'), array('id' => 3, 'name' => '小明') ); $newArray = array_map("serialize", $array); $newArray = array_unique($newArray); $newArray = array_map("unserialize", $newArray); print_r($newArray);
輸出結果:
Array ( [0] => Array ( [id] => 1 [name] => 小明 ) [1] => Array ( [id] => 2 [name] => 小红 ) )
方法二:使用循環遍歷
循環遍歷數組,將每個子數組與先前的子數組進行對比,如果相同則刪除。具體程式碼實作如下:
$array = array( array('id' => 1, 'name' => '小明'), array('id' => 2, 'name' => '小红'), array('id' => 3, 'name' => '小明') ); for($i = 0; $i < count($array) - 1; $i++){ for($j = $i + 1; $j < count($array); $j++){ if($array[$i] == $array[$j]){ unset($array[$j]); } } } print_r($array);
輸出結果:
Array ( [0] => Array ( [id] => 1 [name] => 小明 ) [1] => Array ( [id] => 2 [name] => 小红 ) )
方法三:使用array_walk()函數
array_walk()函數可以讓我們自訂處理陣列的函數。具體實作方法如下:
$array = array( array('id' => 1, 'name' => '小明'), array('id' => 2, 'name' => '小红'), array('id' => 3, 'name' => '小明') ); $tempArr = array(); array_walk($array, function($value, $key) use (&$tempArr) { if(!in_array($value, $tempArr)){ array_push($tempArr, $value); } }); print_r($tempArr);
輸出結果:
Array ( [0] => Array ( [id] => 1 [name] => 小明 ) [1] => Array ( [id] => 2 [name] => 小红 ) )
以上就是三種快速移除二維陣列中重複資料的方法。具體使用哪一種方法,要根據實際情況來定。如果只是簡單的去重,可以使用array_unique()函數;如果資料量比較小,可以使用迴圈遍歷;如果資料量較大,可以使用array_walk()函數。
以上是php如何快速去除二維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!