luckyluke

Doppelte Werte aus mehrdimensionalen Array entfernen

Hallo liebe PHP'ler,

stehe vor einem Problem und komme nicht weiter. Ich habe ein mehrdimensionales Array, dass ich mit foreach auslese, siehe hier:

if(isset($_POST['abinhalt']))  
{	 
 foreach ($_POST['abinhalt'] as $kindid => $prdkindid)   
 {  												
  foreach ($prdkindid as $zusatzid => $option) 
  { 
   $produktids = array_unique($option);	// Doppelte Werte werden hier auf eins reduziert.	
   foreach ($produktids as $optionid => $kindbenamung)
   {  	 									
    foreach ($kindbenamung as $kind => $zusatzbenamung)
    {  									
      foreach ($zusatzbenamung as $zusatz => $optionbenamung)
      {  								
        foreach ($optionbenamung as $option => $kindabinhalte)
       {  													  
         echo 'Kindid: '.$kindid.' <br /> ';  
         echo 'Zusatzid: '.$zusatzid.' <br /> ';  
         echo 'Optionid: '.$optionid.' <br /> ';  
         echo 'Produkt: '.$kind.' <br /> ';  
         echo 'Zusatz: '.$zusatz.' <br /> ';  
         echo 'Option: '.$option.' <br /> ';  
       }
      }
     }
    }
   }
  }
}

In diesem Array sind Produkte enthalten, die mit KINDID's gespeichert sind. Diese kommen mehrfach vor. Mit array_unique fange ich diese auch ab und lasse doppelte Produkte nur einmal ausgeben.
Mein Problem ist jetzt aber, dass das array-unique anscheinend auf alle unter-arrays greift, d.h.: Ein Produkt mit seinen verschiedenen Optionen $option wird auch nur einmal ausgegeben mit der ersten ausgewählten Option-ID. Das ist so nicht richtig: Es soll oben nur einmal das Produkt stehen und unten drunter alle ausgewählten Optionen erscheinen. Deshalb der Grund für das array_unique.

Hat einer einen Tipp wie ich hier zu meiner Lösung komme?


Grüße, Lucky.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 134291

Url: https://administrator.de/forum/doppelte-werte-aus-mehrdimensionalen-array-entfernen-134291.html

Ausgedruckt am: 05.05.2025 um 08:05 Uhr

bytecounter
bytecounter 26.01.2010 um 09:29:32 Uhr
Goto Top
Hallo,

erstmal ist m. E. array_unique() nicht für mehrdimensionale Arrays gedacht, d. h. du hast den falschen Ansatz. Denke, dass du dir für dein Problem eine array_map() Funktion schreiben musst und das Ganze "manuell" machen.

vg
Bytecounter