24. november 2003 - 20:44
Der er
21 kommentarer og 1 løsning
sort af array med tekst-keys
Hej... har et array som dette: --- Array ( [Page] => Array ( [/Stat/index.php?page=about] => 7 [/Stat/index.php?page=scsht] => 3 [/Stat/index.php?page=news] => 4 [/Stat/index.php] => 5 [/Stat/index.php?page=detect] => 21 [/Stat/index.php?page=dl] => 3 [/Stat/] => 6 [/Stat/?page=detect] => 1 ) [Referer] => Array ( [/Stat/index.php?page=about] => 5 [/Stat/index.php?page=scsht] => 2 [0] => 25 [/Stat/index.php?page=detect] => 4 [/Stat/index.php?page=news] => 5 [/Stat/index.php?page=dl] => 2 [/Stat/] => 6 [/Stat/index.php] => 1 ) [Js] => Array ( [1] => 50 [0] => 2 ) [ScrRes] => Array ( [1600x1200] => 12 [1152x864] => 9 [1024x768] => 13 [800x600] => 4 [640x480] => 2 [720x480] => 2 [720x576] => 1 [1280x1024] => 7 ) [ClrDpth] => Array ( [16] => 21 [32] => 27 [8] => 2 ) ) --- (gæt slev hvad det bliver til når der er færdigt) vill nu gerne have struktureret det så det kommer til at stå sådan her --- Array ( [Page] => Array ( [/Stat/index.php?page=detect] => 21 [/Stat/index.php?page=about] => 7 [/Stat/] => 6 [/Stat/index.php] => 5 [/Stat/index.php?page=news] => 4 [/Stat/index.php?page=scsht] => 3 [/Stat/index.php?page=dl] => 3 [/Stat/?page=detect] => 1 ) [Referer] => Array ( [0] => 25 [/Stat/] => 6 [/Stat/index.php?page=about] => 5 [/Stat/index.php?page=news] => 5 [/Stat/index.php?page=detect] => 4 [/Stat/index.php?page=scsht] => 2 [/Stat/index.php?page=dl] => 2 [/Stat/index.php] => 1 ) [Js] => Array ( [1] => 50 [0] => 2 ) [ScrRes] => Array ( [1024x768] => 13 [1600x1200] => 12 [1152x864] => 9 [1280x1024] => 7 [800x600] => 4 [640x480] => 2 [720x480] => 2 [720x576] => 1 ) [ClrDpth] => Array ( [32] => 27 [16] => 21 [8] => 2 ) ) --- altså hvor key med højst value kommer øverst og så faldende... hvordan gøres dette? Morten
Annonceindlæg fra Pax8
24. november 2003 - 21:16
#1
Det burde vel kunne gøres med krsort (reverse key sortering)
24. november 2003 - 21:22
#2
$statsArr['Page'] = krsort($statsArr['Page']); $statsArr['Referer'] = krsort($statsArr['Referer']); $statsArr['Js'] = krsort($statsArr['Js']); $statsArr['ScrRes'] = krsort($statsArr['ScrRes']); $statsArr['ClrDpth'] = krsort($statsArr['ClrDpth']); gør intet... hvis jeg bagefter tilføjer reset($statsArr['ClrDpth']); reset(.... .... får jeg disse fejl: reset(): Passed variable is not an array or object --- og det er jo ikke key's jeg skal sortere efter - det er jo value der skal sorteres efter - dog descending... Morten
24. november 2003 - 21:34
#3
Ja, du kunne prøve med array_multisort(). Den synes jeg imidlertid ikke jeg kan få til at fungere rigtigt. Ellers sådan her: arsort($statsArr['Page'], SORT_NUMERIC); arsort($statsArr['Referer'], SORT_NUMERIC); osv... ikke noget med: $statsArr['Page'] = arsort($statsArr['Page'], SORT_NUMERIC);
24. november 2003 - 21:40
#4
detox -> stadig intet... --- arsort($statsArr['Page'], SORT_NUMERIC); arsort($statsArr['Referer'], SORT_NUMERIC); arsort($statsArr['Js'], SORT_NUMERIC); arsort($statsArr['ScrRes'], SORT_NUMERIC); arsort($statsArr['ClrDpth'], SORT_NUMERIC); reset($statsArr['Page']); reset($statsArr['Referer']); reset($statsArr['Js']); reset($statsArr['ScrRes']); reset($statsArr['ClrDpth']); --- har også prøvet uden reset() linierne Morten
24. november 2003 - 21:43
#5
Har du prøvet med: arsort($statsArr['Page'], SORT_NUMERIC); arsort($statsArr['Referer'], SORT_NUMERIC); arsort($statsArr['Js'], SORT_NUMERIC); arsort($statsArr['ScrRes'], SORT_NUMERIC); arsort($statsArr['ClrDpth'], SORT_NUMERIC); echo "<pre>"; print_r ($statsArr); echo "</pre>"; og det funker ikke?
24. november 2003 - 21:46
#6
24. november 2003 - 21:52
#7
Det var dog pudsigt. Jeg har testet med: <? $arr = array('Page' => array( '/Stat/index.php?page=about' => 7, '/Stat/index.php?page=scsht' => 3, '/Stat/index.php?page=news' => 4, '/Stat/index.php' => 5, '/Stat/index.php?page=detect' => 21, '/Stat/index.php?page=dl' => 3, '/Stat/' => 6, '/Stat/?page=detect' => 1 ), 'Referer' => array( '/Stat/index.php?page=about' => 5, '/Stat/index.php?page=scsht' => 2, '0' => 25, '/Stat/index.php?page=detect' => 4, '/Stat/index.php?page=news' => 5, '/Stat/index.php?page=dl' => 2, '/Stat/' => 6, '/Stat/index.php' => 1 ) ); echo "<pre>"; print_r ($arr); echo "</pre>"; echo "<br />"; arsort($arr['Page'], SORT_NUMERIC); arsort($arr['Referer'], SORT_NUMERIC); echo "<pre>"; print_r ($arr); echo "</pre>"; ?>
24. november 2003 - 22:02
#8
og det virkede? Morten
24. november 2003 - 22:02
#9
array_multisort() burde osse kunne gøre det: array_multisort($statsArr['Page'], SORT_NUMERIC, SORT_DESC, $statsArr['Referer'], SORT_NUMERIC, SORT_DESC, $statsArr['Js'], SORT_NUMERIC, SORT_DESC, $statsArr['ScrRes'], SORT_NUMERIC, SORT_DESC, $statsArr['ClrDpth'], SORT_NUMERIC, SORT_DESC);
24. november 2003 - 22:04
#10
24. november 2003 - 22:05
#11
interesant... multisort() virker heller ikke :( Morten
24. november 2003 - 22:08
#12
multisort kunne jeg nu heller ikke rigtigt få til det?
24. november 2003 - 22:11
#13
hmm - meget interesant... kan det have noget med PHP konf. at gøre? så burde den bare brokke sig, burde den ikke? Morten
24. november 2003 - 22:13
#14
Jo, det skulle jeg da mene. Kan du heller ikke få min test til det?
24. november 2003 - 22:20
#17
ARRRGGGG - det var en stave/tryk fejl... havde oprettet statsArr - lagt data i statArr, sorteret statsArr og udskrevet statArr lagde mærke til det efter jeg fik error_reporting = E_ALL (som jeg altid plejer at have, men efter skift til gentoo har jeg haft glemt det) Morten
24. november 2003 - 22:22
#18
Ah ja, så var der mening med galskaben ;o)
24. november 2003 - 22:25
#19
detox -> tænkte på om jeg kunne få din MSN / ICQ add... synes det er rart at have et par PHP med-nørder på listen... hader trykfejl... hvorfor er det altid sådan nogle man ikke kan finde? (og hvorfor laver man mange fejl mellem klokken 4 og 5 om natten?) Morten
24. november 2003 - 22:25
#20
og smidder du et svar Morten
24. november 2003 - 22:31
#21
Jo da: sveegaard@hotmail.com Ja, tyrkfejl kan være nok så irriterende og ja, fejlprocenten stiger ud på de små timer ;o)
06. december 2003 - 12:00
#22
sorry - har glemt at lukke - nu for du dine point... Morten
Vi tilbyder markedets bedste kurser inden for webudvikling