Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Doppelte Werte aus mehrdimensionalen Array entfernen

Frage Entwicklung PHP

Mitglied: LuckyLuke

LuckyLuke (Level 1) - Jetzt verbinden

25.01.2010, aktualisiert 14:27 Uhr, 6336 Aufrufe, 1 Kommentar

Hallo liebe PHP'ler,

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

01.
if(isset($_POST['abinhalt'])) 
02.
{	  
03.
 foreach ($_POST['abinhalt'] as $kindid => $prdkindid)  
04.
 {  												 
05.
  foreach ($prdkindid as $zusatzid => $option)  
06.
  {  
07.
   $produktids = array_unique($option);	// Doppelte Werte werden hier auf eins reduziert.	 
08.
   foreach ($produktids as $optionid => $kindbenamung
09.
   {  	 									 
10.
    foreach ($kindbenamung as $kind => $zusatzbenamung
11.
    {  									 
12.
      foreach ($zusatzbenamung as $zusatz => $optionbenamung
13.
      {  								 
14.
        foreach ($optionbenamung as $option => $kindabinhalte
15.
       {  													   
16.
         echo 'Kindid: '.$kindid.' <br /> '; 
17.
         echo 'Zusatzid: '.$zusatzid.' <br /> '; 
18.
         echo 'Optionid: '.$optionid.' <br /> '; 
19.
         echo 'Produkt: '.$kind.' <br /> '; 
20.
         echo 'Zusatz: '.$zusatz.' <br /> '; 
21.
         echo 'Option: '.$option.' <br /> '; 
22.
23.
24.
25.
26.
27.
28.
}
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.
Mitglied: bytecounter
26.01.2010 um 09:29 Uhr
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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Werte aus CSV in TXT - Powershell (14)

Frage von Komoran12 zum Thema Batch & Shell ...

C und C++
Push back in einen mehrdimensionalen Vektor (1)

Frage von How-To zum Thema C und C ...

Festplatten, SSD, Raid
gelöst Festplatte aus RAID 1 entfernen und wieder einsetzen (6)

Frage von EVO7-2003 zum Thema Festplatten, SSD, Raid ...

Batch & Shell
gelöst Batch Leerzeichen in nur bestimmten Spalten entfernen? (2)

Frage von Komoran12 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Firewall
Welche Firewall ? (18)

Frage von Cyberurmel zum Thema Firewall ...

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...