/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
avanceret sortering af array
Fra : Brian Emilius


Dato : 18-03-05 23:55

Hej NG

Hvordan sorterer jeg et array som nedenstående efter 'navn'?

$brugere[0] = array('id' => '15', 'navn' => 'Ole Olsen');
$brugere[1] = array('id' => '12', 'navn' => 'Brian Mikkelsen');
$brugere[2] = array('id' => '1', 'navn' => 'Poul Bundgaard');

sorteringen af $brugere skulle meget gerne være alfabetisk og stigende.

--
Venlig hilsen
Brian Emilius

 
 
Martin Koch Andersen (19-03-2005)
Kommentar
Fra : Martin Koch Andersen


Dato : 19-03-05 00:37

Hej Brian,

Brian Emilius wrote:
> Hvordan sorterer jeg et array som nedenstående efter 'navn'?
>
> $brugere[0] = array('id' => '15', 'navn' => 'Ole Olsen');
> $brugere[1] = array('id' => '12', 'navn' => 'Brian Mikkelsen');
> $brugere[2] = array('id' => '1', 'navn' => 'Poul Bundgaard');
>
> sorteringen af $brugere skulle meget gerne være alfabetisk og stigende.

usort($brugere, create_function('$a, $b', 'return
strcmp(strtolower($a["navn"]), strtolower($b["navn"]));'));

Hvis du har mulighed for det, kunne du ændre dit array, så id var key og
navn value, og så bare sortere med sort. Eller hvis dit array kommer fra
en database, sortere på navn allerede ved udtrækket (ORDER BY).

--
Martin - http://925.dk
"Shoot for the moon, even if you miss, you'll land among the stars."

Martin Koch Andersen (19-03-2005)
Kommentar
Fra : Martin Koch Andersen


Dato : 19-03-05 00:53

Martin Koch Andersen wrote:
> usort($brugere, create_function('$a, $b', 'return
> strcmp(strtolower($a["navn"]), strtolower($b["navn"]));'));

Faldt lige over strcasecmp, så ovenstående kan forenkles til:

usort($brugere, create_function('$a, $b', 'return strcasecmp($a["navn"],
$b["navn"]);'));

--
Martin - http://925.dk
"Shoot for the moon, even if you miss, you'll land among the stars."

Brian Emilius (19-03-2005)
Kommentar
Fra : Brian Emilius


Dato : 19-03-05 14:07

Martin Koch Andersen skrev:
> Faldt lige over strcasecmp, så ovenstående kan forenkles til:
>
> usort($brugere, create_function('$a, $b', 'return strcasecmp($a["navn"],
> $b["navn"]);'));
>

Perfekt! Tak skal du have

--
Venlig hilsen
Brian Emilius

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste