spetzenMedlem sedan feb. 200415 inlägg Hejsan
Jag har en array som är uppbyggd på följande sett:
array(
1 => array('a', 'd', 'c'),
2 => array('c', 'b'),
3 => array('i', 'e', 'u')
)
Jag skulle vela sortera det efter bosktavsordning så det blir på följande vis:
array(
1 => array('a', 'c', 'd'),
2 => array( 'b', 'c'),
3 => array('e', 'i', 'u')
)
/Spetz
aasahMedlem sedan mars 20034 471 inlägg Funkar inte asort på de inre arrayerna? Eller multisort?
spetzenMedlem sedan feb. 200415 inlägg Har knappt hållt på med arrayer så du kanske kan visa hur man kör asort på just den inre arrayen, det felet jag gjort är antagligen att jag kör asort på hela arrayen och då blir det inte helt rätt.
aasahMedlem sedan mars 20034 471 inlägg foreach($arr as $k => $sub) {
echo "$k = > ";
echo asort($sub);
echo "\n";
}
PeddaMedlem sedan juni 20006 032 inlägg array_multisort borde man ju kunna använda.
Tyvärr så sysslar man ju så lite med sånt.
spetzenMedlem sedan feb. 200415 inlägg Kör jag sådär skrivs det bara ut 111?
aasahMedlem sedan mars 20034 471 inlägg
aasah skrev:
foreach($arr as $k => $sub) {
echo "$k = > ";
echo asort($sub);
echo "\n";
}
Detta ger 111? Det är inte möjligt... :q "$arr" ska alltså bytas mot namnet på din två-dim array.
Vad händer om du kör array_multisort ($arr) då?
spetzenMedlem sedan feb. 200415 inlägg Jo. använde jag funktionen sådär skrevs 111 ut men efter lite redigering så kom jag på varför. Asort returnerar ju ett booleskt värde varje gång den körs där 1 står för true, vilket alltså säger att den lyckades med sorteringen. Så istället för att skriva ut inne i funktionen så gjorde jag på detta sätt istället vilket gjorde att det fungerade som jag ville:
foreach($arr as $k => $sub) {
asort($sub);
}
echo $arr;
Det kan ju förövrigt varit så du menade att jag skulle göra egentligen.
Tack för hjälpen
MvH Spetz