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, 6313 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 Leere Array-Werte aus einem Array entfernen (3)

Frage von ToniHo zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel: Wert aus mehreren Datein suchen und zugehörige Werte ausgeben (11)

Frage von RubyLissy zum Thema Microsoft Office ...

Windows Systemdateien
Windows 10 Registry Einträge entfernen (18)

Frage von Hendrik2586 zum Thema Windows Systemdateien ...

PHP
gelöst PHP - unique-array() und sort() (14)

Frage von ThomasXYZ zum Thema PHP ...

Neue Wissensbeiträge
Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
VPN Tunnel aufbauen (16)

Frage von Hajo2006 zum Thema LAN, WAN, Wireless ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (14)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (14)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...