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, 6372 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 ...

PHP
Mehrdimensionales arrays durchsuchen (4)

Frage von pcguy zum Thema PHP ...

Batch & Shell
gelöst Powershell Wert der Property entfernen manipulieren (9)

Frage von Nintox zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

E-Business
Wo tragt ihr eure privaten Termine ein? (13)

Frage von honeybee zum Thema E-Business ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...