Einzelnen Beitrag anzeigen
  #2  
Alt 17.04.2008, 16:11:08
ascer ascer ist offline
Anfänger
 
Registriert seit: Oct 2006
Beiträge: 137
AW: Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen

PHP-Code:
$oberarray = Array();

$oberarray[0] = Array();
$oberarray[0]["nr"] = 1;

$oberarray[1] = Array();
$oberarray[1]["nr"] = 1;


for( 
$i 0$i < ( count($oberarray) - ); $i++ ){

   if( !empty(
$oberarray[$i] AND isset($oberarray[$i]) ){
      for( 
$a $i 1$a < ( count($oberarray) ); $a++ ){
         if( 
$oberarray[$i]["nr"] == $oberarray[$a]["nr"] ){
            unset(
$oberarray[$a]);
         }
      }
   }


Hab es jetzt nicht getestet aber sollte funktionieren, musst du sonst nochmal ein bisschen mit rumprobieren^^

Prinzip das da hinter steckt ist folgendes:
Sagen wir mal $oberarray hat 10 Einträge, dann durchläuft die obere Schleife die Einträge mit dem Index 0-8 und für jeden Index 0-8 wird die untere Schleife aufgerufen die dann die Indexnummer von der oberen Schleife übernimmt ( $a = $i + 1 ) und im Index einen weiter springt und ab dieser Position bis zum Ende des Arrays alle Einträge durchläuft und sie miteinander vergleicht...

Was dir in die Quere kommen könnte ist, wenn das $oberarry z.B. nicht von 0-9 im Index geht sonder z.B. 0, 3, 5, 7, 10 u.s.w. hat, dann müsstest du es vorher einmal sortieren, das es wieder 0-9 hat damit es geht...

Ob das so funzt, wie gesagt ka, bin grad rech müde und zu faul zum ausprobieren aber ich denke es sollte so in etwa funzen, das if( !empty ) ist dazu da um bereits gelöschte $oberarray[$a]'s nicht zu prüfen mit der unterschleife, so das er quasi gleich weiterspringt zum nächsten $oberarray[$i] in der oberschleife und nicht versucht einen bereits gelöschten eintrag mit irgendwas zu vergleichen...


gruß,
Ascer
Mit Zitat antworten