Sortieren von verschachtelten Arrays (Quelle LDAP)
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:
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
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:
for ($i=0; $i<$anzahl;$i++) {
$ergebnis[$i]["sn"] = utf8_decode($data[$i]["sn"]);
$ergebnis[$i]["givenname"] = utf8_decode($data[$i]["givenname"]);
$ergebnis[$i]["telephoneNumber"] = utf8_decode($data[$i]["telephonenumber"]);
$ergebnis[$i]["physicalDeliveryOfficeName"] = utf8_decode($data[$i]["physicaldeliveryofficename"]);
$ergebnis[$i]["mail"] = utf8_decode($data[$i]["mail"]);
}
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 126740
Url: https://administrator.de/contentid/126740
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
4 Kommentare
Neuester Kommentar
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.
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.
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.
have fun
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.
function vergleich($wert_a, $wert_b)
{
// Sortierung nach dem zweiten Wert des Array (Index: 1)
$a = $wert_a["sn"];
$b = $wert_b["sn"];
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : +1;
}
echo "<pre>";
var_dump($data);
usort($data, 'vergleich');
var_dump($data);
echo "</pre>";
have fun
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:
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:
<?php
$data = array();
$data["sn"] = "Meier, Hannes";
$data["givenname"] = "Peter";
$data["telephonenumber"] = "12134";
$data["physicalDeliveryOfficeName"] = "A";
$data["mail"] = "foo";
$data[1]["sn"] = "Meier, Anda";
$data[1]["givenname"] = "Pier";
$data[1]["telephonenumber"] = "9876";
$data[1]["physicalDeliveryOfficeName"] = "B";
$data[1]["mail"] = "bar";
function vergleich($wert_a, $wert_b)
{
$a = $wert_a["sn"];
$b = $wert_b["sn"];
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : +1;
}
echo "<pre>";
var_dump($data);
usort($data, 'vergleich');
var_dump($data);
echo "</pre>";
?>