Beim Programmieren in PHP sind häufig zweidimensionale Array-Operationen beteiligt. Manchmal müssen wir ein zweidimensionales Array deduplizieren, also doppelte Elemente entfernen. In diesem Artikel wird vorgestellt, wie man zweidimensionale Arrays in PHP dedupliziert.
1. Mit der Funktion array_unique können Sie doppelte Werte im Array löschen und ein neues Array ohne doppelte Werte zurückgeben. Allerdings kann die Funktion array_unique nicht direkt zum Deduplizieren zweidimensionaler Arrays verwendet werden.
Wir können die Funktion array_walk verwenden, um das Array zu durchlaufen, und die Funktion array_unique in jedem Element verwenden, um Duplikate zu entfernen. Der Beispielcode lautet wie folgt:
function array_unique_key($arr,$key){ $tmp_arr=array(); foreach($arr as $k => $v){ if(in_array($v[$key],$tmp_arr)){ //判断是否重复 unset($arr[$k]); //重复则删除 }else{ $tmp_arr[]=$v[$key]; //将值存储在临时数组中 } } return $arr; }
Im obigen Code ist $arr das zweidimensionale Array, das dedupliziert werden muss, und $key ist der angegebene Schlüsselname (d. h. der Schlüsselname). entsprechend dem zu deduplizierenden Element. Die Funktion gibt nach der Deduplizierung das neue Array zurück.
2. Verwenden Sie eine benutzerdefinierte Funktion
, um die Deduplizierungslogik selbst zu implementieren. Der folgende Beispielcode implementiert die Deduplizierung mithilfe einer Schleifenmethode:
function array_unique_key($arr,$key){ $temp_array = array(); foreach ($arr as $k => $v){ if (!in_array($v[$key], $temp_array)){ array_push($temp_array, $v[$key]); $temp_arr[] = $v; } } return $temp_arr; }
Im obigen Code ist $arr das zweidimensionale Array, das dedupliziert werden muss, und $key ist der angegebene Schlüsselname (d. h , der Speicherort des zu deduplizierenden Elements (entsprechender Schlüsselname), gibt diese Funktion das neue Array nach der Deduplizierung zurück.
3. Verwenden Sie die Funktion array_reduce.
Die Funktion array_reduce kann jedes Element des Arrays durchlaufen und einen reduzierten Einzelwert zurückgeben.
Mit dieser Funktion können wir eine Deduplizierung zweidimensionaler Arrays erreichen.
Der Code lautet wie folgt:
function array_unique_key($arr,$key){ return array_reduce($arr, function($carry, $item) use ($key) { if(!in_array($item[$key], array_column($carry, $key))) { $carry[] = $item; } return $carry; }, []); }
Im obigen Code ist $arr das zweidimensionale Array, das dedupliziert werden muss, und $key ist der angegebene Schlüsselname (d. h. der Speicherort des entsprechenden Schlüsselnamens) gibt diese Funktion das neue Array nach der Deduplizierung zurück.
4. Verwenden Sie benutzerdefinierte Funktionen in Kombination mit den integrierten Funktionen von PHP.
Der folgende Code implementiert die Funktion der Deduplizierung zweidimensionaler Arrays durch die Kombination der integrierten Funktionen array_map und array_flip von PHP und array_values. Der Code lautet wie folgt:
function array_unique_key($arr,$key){ return array_values(array_flip(array_map(function($item) use($key){ return json_encode($item[$key]); }, $arr))); }
Im obigen Code ist $arr das zweidimensionale Array, das dedupliziert werden muss, und $key ist der angegebene Schlüsselname (d. h. der Schlüsselname, der dem zu deduplizierenden Element entspricht. Diese Funktion gibt das neue Array nach der Deduplizierung zurück.
Zusammenfassung
Die oben genannten Möglichkeiten sind mehrere Möglichkeiten, zweidimensionale Arrays in PHP zu deduplizieren. Sie stellen grob die Verwendung von array_unique, benutzerdefinierten Funktionen und die Kombination mit in PHP integrierten Funktionen vor array_map und array_flip und array_reduce und andere Methoden. In verschiedenen Anwendungsszenarien werden unterschiedliche Methoden verwendet, und Programmierer können je nach Situation eine Auswahl treffen.
Das obige ist der detaillierte Inhalt vonSo entfernen Sie Duplikate aus einem zweidimensionalen Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!