Zitat:
Original geschrieben von käptn
Ungetestet, aber vielleicht lässt sich was draus machen:
PHP-Code:
$sql = "SELECT * FROM " . $db;
$abfrage = mysql_query($sql);
if(mysql_num_rows($abfrage)) {
while($row = mysql_fetch_assoc($abfrage)) {
$first[] = str_rot13($row['teil1']);
$second[] = str_rot13($row['teil2']);
}
}
$my_temp = array_flip($first);
ksort($my_temp);
foreach ($my_temp as $k)
{
$my_first[] = $first[$k];
$my_second[] = $second[$k];
}
HTH
~
|
funzt von der idee her an sich ganz gut (bis auf ein paar kleine fehler, die ich im code unten ausgebessert und dokumentiert habe), nur ist es nicht unbedingt nötig, die keys zu sortieren (funzt aber auch), es ginge auch gleich über eine sortierung der arrayinhalte selbst und dann einem folgenden flip, also so wie folgt.
PHP-Code:
$sql = "SELECT * FROM " . $db;
$abfrage = mysql_query($sql, $verbindung); // ohne angabe einer db-verbindung wird ein query kaum funktionieren, ist einfach ein nötiger parameter
$anzahl = mysql_num_rows($abfrage); // jetzt brauche ich diese variable, für die angabe der größe der arrays
$teil1 = array($anzahl); // müssen definiert werden, um mit einem laufindex durchlaufen werden zu können, so wie in der ursprungsfunktion gehts nicht
$teil2 = array($anzahl);
$index = 0;
if($anzahl>0) {
while($row = mysql_fetch_object($abfrage)) {
$first[] = str_rot13($row->teil1]);
$second[] = str_rot13($row->teil2]);
$index++;
}
}
asort($first);
$my_temp = array_flip($first);
// hier ginge auch ksort($my_temp) anstatt asort($first)
foreach ($my_temp as $k)
{
$my_first[] = $first[$k];
$my_second[] = $second[$k];
}
ein einziges problem gibt es allerdings noch, und zwar bei beiden versionen. weder
ksort() noch
asort() sind in der lage, korrekt zu sortieren, wenn sich in dem zu sortierenden array doppelte einträge befinden, da wird dann einfach der letzte genommen und die vorher gefundenen ignoriert. gibt es vllt. eine intelligentere suchfunktion oder kann man dem sonst wie beikommen?