Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Sortieren von verschachtelten Arrays (Quelle LDAP)

Frage Entwicklung PHP

Mitglied: risker

risker (Level 1) - Jetzt verbinden

08.10.2009, aktualisiert 15:02 Uhr, 3605 Aufrufe, 4 Kommentare

Hallo,

Ich les aus einem AD (siehe anderer Post) folgende Werte aus:

SN (Nachname), Givenname (Vorname), Telephonnummer, E-Mail und Büro

Das ganze wird so:

01.
for ($i=0; $i<$anzahl;$i++) { 
02.
	$ergebnis[$i]["sn"] = utf8_decode($data[$i]["sn"][0]); 
03.
	$ergebnis[$i]["givenname"] = utf8_decode($data[$i]["givenname"][0]); 
04.
	$ergebnis[$i]["telephoneNumber"] = utf8_decode($data[$i]["telephonenumber"][0]); 
05.
	$ergebnis[$i]["physicalDeliveryOfficeName"] = utf8_decode($data[$i]["physicaldeliveryofficename"][0]); 
06.
	$ergebnis[$i]["mail"] = utf8_decode($data[$i]["mail"][0]); 
07.
}
in ein Ergebnisarray gepackt.

Wie krieg ich das ganze jetzt nach SN sortiert? Die Manuals von php.net hab ich nich so recht verstanden...
Im Prinzip müssen doch nur die Indexe anhand des Nachnamens vertauscht werden.. oder?

Es sind übrigens etwa 300 Datensätze..

Vielen Dank im Voraus,
risker
Mitglied: AndreasHoster
08.10.2009 um 17:39 Uhr
Kann zwar kein PHP, aber die Google Abfrage nach Bubblesort in PHP lifert gleich ein Ergebnis mit Code:
http://www.phpfuncs.org/?goto=53
Bin mir jetzt nicht sicher, ob die mit Multidimensionalen Arrays zurechtkommt, aber wenn nicht ist es auch nicht zu schwierig die Umkopiererei im Beispiel auf Deine weiteren Werte zu erweitern.
Bitte warten ..
Mitglied: godlie
08.10.2009 um 17:40 Uhr
Hallo,

eigentlich recht einfach zu lösen und ja die Beschreibungen auf php.net für die array_multisort sind nicht grad der hammer
einfach $data durch $ergebnis ersetzen.

01.
function vergleich($wert_a, $wert_b) 
02.
03.
      // Sortierung nach dem zweiten Wert des Array (Index: 1) 
04.
      $a = $wert_a["sn"]; 
05.
    $b = $wert_b["sn"]; 
06.
 
07.
     if ($a == $b) { 
08.
         return 0; 
09.
10.
 
11.
     return ($a < $b) ? -1 : +1; 
12.
13.
echo "<pre>"; 
14.
var_dump($data); 
15.
usort($data, 'vergleich'); 
16.
var_dump($data); 
17.
echo "</pre>";
have fun
Bitte warten ..
Mitglied: risker
09.10.2009 um 09:05 Uhr
Super, funktioniert richtig gut.

Aber ich hab noch 2 Sachen gefunden. Wenn ich nach Displayname sortiere (nachname, vorname) werden doppelte Einträge kommentarlos weggelassen.

Denn, wenn ich so sortiere, ignoriert er logischerweise die Reihenfolge bei den Vornamen.
Bitte warten ..
Mitglied: godlie
09.10.2009 um 13:31 Uhr
Hallo,

naja du könntest dir ja die Doppelten aufzeichnen.
in der Zeile 7 wird ja kontrolliert ob das ganze doppelt ist,
dort einfach ein array befüllen mit den doppelten und fertig.

Also das er den Vornamen ignoriert dem muss ich wiedersprechen.

Hier mal mein ganzes Testscript:
01.
<?php 
02.
$data = array(); 
03.
  $data[0]["sn"] = "Meier, Hannes"; 
04.
  $data[0]["givenname"] = "Peter"; 
05.
  $data[0]["telephonenumber"] = "12134"; 
06.
  $data[0]["physicalDeliveryOfficeName"] = "A"; 
07.
  $data[0]["mail"] = "foo"; 
08.
 
09.
  $data[1]["sn"] = "Meier, Anda"; 
10.
  $data[1]["givenname"] = "Pier"; 
11.
  $data[1]["telephonenumber"] = "9876"; 
12.
  $data[1]["physicalDeliveryOfficeName"] = "B"; 
13.
  $data[1]["mail"] = "bar"; 
14.
 
15.
function vergleich($wert_a, $wert_b) 
16.
17.
      $a = $wert_a["sn"]; 
18.
     $b = $wert_b["sn"]; 
19.
 
20.
     if ($a == $b) { 
21.
         return 0; 
22.
23.
 
24.
     return ($a < $b) ? -1 : +1; 
25.
26.
echo "<pre>"; 
27.
var_dump($data); 
28.
usort($data, 'vergleich'); 
29.
var_dump($data); 
30.
echo "</pre>"; 
31.
?>
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Dateien aus verschiedenen Arrays - Attribute vergleichen (5)

Frage von Giffas zum Thema Batch & Shell ...

PHP
Mehrdimensionales arrays durchsuchen (4)

Frage von pcguy zum Thema PHP ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Neue Wissensbeiträge
LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(2)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Windows 10

Microsoft veröffentlicht das "Fall Creators Update

(10)

Information von Penny.Cilin zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...