usort - nach Zeichenlänge sortieren
Halli Hallo,
ich möchte eine Variable in Arrays zerlegen und diese dann nach
Zeichenlänge sortieren. Dabei soll das Array mit der längsten
Zeichenkette an erster Stelle stehen. Wenn ich das ganze aber starte,
erscheint als Ergebnis
Garten
eigenen Garten
eigenen Garten
großen Garten
Garten
Der Fehler liegt in "usort" Aber wo? Weiß jemand, woran das liegt?
Vielen Dank im voraus für Eure Hilfe :-))
<?php
$s="Garten,großen Garten,eigenem Garten,eigenen Garten,eigener Garten";
$a=explode(",",$s);
$anzahl=count($a);
$i=0;
while ($i<$anzahl)
{
echo $a[$i]."<br>";
usort($a, create_function('$ax,$bx','return strlen($bx) - strlen($ax);'));
$i=$i+1;
}
Re: usort - nach Zeichenlänge sortieren
Jörg Nieswand schrieb:
> $i=0;
> while ($i<$anzahl)
> {
> echo $a[$i]."<br>";
> usort($a, create_function('$ax,$bx','return strlen($bx) - strlen($ax);'));
> $i=$i+1;
> }
Das mit dem richtigen Einrücken von Blöcken über wir nochmal.
Dein Fehler ist, dass Du _in_ der Schleife usort() aufruft, anstatt dies
ein Mal _vor_ der Schleife zu tun. Zudem erfolgt Deine erste Ausgabe
noch _vor_ dem Sortieren des Feldes.
Dein Schleifenkonstrukt ist außerdem etwas umständlich. Ich würde eine
for-Schleife benutzen.
Gruß. Claus
Re: usort - nach Zeichenlänge sortieren
Jörg Nieswand schrieb:
> usort($a, create_function('$ax,$bx','return strlen($bx) - strlen($ax);'=
));
http://de2.php.net/manual/en/function.create-function.php
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: usort - nach Zeichenlänge sortieren
Niels Braczek schrieb:
> Jörg Nieswand schrieb:
>> usort($a, create_function('$ax,$bx','return strlen($bx) - strlen($ax);'));
> http://de2.php.net/manual/en/function.create-function.php
Da hat er die Zeile wahrscheinlich her, ja.
--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)
Re: usort - nach Zeichenlänge sortieren
Jau, das wars. Vielen Dank an euch beide :-))
> Dein Fehler ist, dass Du _in_ der Schleife usort() aufruft, anstatt dies
> ein Mal _vor_ der Schleife zu tun. Zudem erfolgt Deine erste Ausgabe
> noch _vor_ dem Sortieren des Feldes.
Re: usort - nach Zeichenlänge sortieren
Thomas Hamacher schrieb:
> Niels Braczek schrieb:
>> Jörg Nieswand schrieb:
>
>>> usort($a, create_function('$ax,$bx','return strlen($bx) - strlen($ax)=
;'));
>
>> http://de2.php.net/manual/en/function.create-function.php
>
> Da hat er die Zeile wahrscheinlich her, ja.
My bad - da hatte ich wohl etwas fehlinterpretiert.
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------