Hallo,
Ich habe in einem anderen Thema schon ein derartigen Problem kämpfen müssen. Dort ging es am Ende allerdings um die Funktion usort();, mit der man ein Array anhand seiner Einträge sortieren kann. Leider hat mir das nicht ganz weiter geholfen und schein auf diesem Weg auch schon ziemlich kompliziert zu sein.
Folgendes Array ist gegeben:
array(3) {
[0]=>
string(1) "7"
[1]=>
string(1) "3"
[2]=>
string(1) "4"
}
Hierbei handelt es sich um Benutzer-IDs.
Aus einer anderen Tabelle sollen jetzt anhand dieser IDs die Benutzer-Informationen der Benutzer gelesen werden und in ein weiteres Array gesetzt werden. Und zwar in der gleichen Reihenfolge wie im ersten Array (7,3,4).
$SQL=
"SELECT
*
FROM
userinfos
WHERE
(id = '7'
OR id = '3'
OR id = '4')";
$users = array();
$count = 0;
$result = mysql_query($sql) OR die(mysql_error());
while($entry = mysql_fetch_assoc($result)) {
$members[$count] = array();
array_push($users[$count],$entry['id']);
array_push($users[$count],$entry['name']);
array_push($users[$count],$entry['type']);
array_push($users[$count],$entry['wohnort']);
array_push($users[$count],$entry['status']);
$count++;
}
Wird dies Ausgegeben, sieht das in etwa so aus:
array(3) {
[0]=>
array(5) {
[0]=>
string(1) "3"
[1]=>
string(12) "Rolf"
[2]=>
string(6) "1"
[3]=>
string(2) "26314"
[4]=>
string(1) "0"
}
[1]=>
array(5) {
[0]=>
string(1) "4"
[1]=>
string(9) "Dieter"
[2]=>
string(6) "1"
[3]=>
string(2) "26414"
[4]=>
string(1) "1"
}
[2]=>
array(5) {
[0]=>
string(1) "7"
[1]=>
string(15) "Peter"
[2]=>
string(6) "1"
[3]=>
string(2) "26345"
[4]=>
string(1) "0"
}
}
Diesen Query habe ich nun genutzt, um die Benutzer-Informationen aus der Tabelle auszulesen. Leider jedoch ist das neue Array wieder nach den IDs geordnet (3,4,7 - ASC) und nicht so, wie ich es haben wollte (7,3,4).
Gut Ding mag weile haben, aber ich sitz jetzt schon fast 1 Woche an einer einzigen Funktion fest ^^
Hat jemand vielleicht eine Idee, wie sich mein Vorhaben realisieren lässt?
Vielen Dank im Vorraus .