array_unique() für multidimensionale Arrays

August 2010

Die PHP-Funktion array_unique() ist gebräuchlich, um doppelte Einträge aus einem Array zu entfernen. Allerdings hat die Funktion einen Haken: Sie funktioniert bei multidimensionalen Arrays nicht so, wie sie sollte, stattdessen liefert sie "wirres Zeug".
Mit der folgenden Funktion array_multi_unique() lassen sich aber auch mehrdimensionale Arrays von Duplikaten säubern:

<?php
function array_multi_unique($multiArray){
  
/* array_unique() für multidimensionale Arrays
   * @param    array    $multiArray = array(array(..), array(..), ..)
   * @return   array    Array mit einmaligen Elementen
  **/
  
$uniqueArray = array();
  
// alle Array-Elemente durchgehen
  
foreach($multiArray as $subArray){
    
// prüfen, ob Element bereits im Unique-Array
    
if(!in_array($subArray$uniqueArray)){
      
// Element hinzufügen, wenn noch nicht drin
      
$uniqueArray[] = $subArray;
    }
  }
  return 
$uniqueArray;
}
?>

Anwendungsbeispiel:
<?php
$array 
= array(
    array(
'ab'12),
    array(
'cd'34),
    array(
'ab'12)
);
// mehrfache Einträge entfernen
$unique array_multi_unique($array);
?>

Mit dieser Funktion kann man übrigens auch "normale" eindimensionale Arrays bereinigen.

Siehe auch:
 


Andere Einträge


Kommentare

Es sind noch keine Kommentare vorhanden.

Kommentar hinzufügen



(wird nicht veröffentlicht)
(optional)