Avatar billede fangel Nybegynder
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
Avatar billede algizoft Nybegynder
24. november 2003 - 21:16 #1
Det burde vel kunne gøres med krsort (reverse key sortering)
Avatar billede fangel Nybegynder
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
Avatar billede detox Nybegynder
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);
Avatar billede fangel Nybegynder
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
Avatar billede detox Nybegynder
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?
Avatar billede fangel Nybegynder
24. november 2003 - 21:46 #6
du kan se kilde + reslutat her

http://mfa.ath.cx/Stat/src/viewstat.php

Morten
Avatar billede detox Nybegynder
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>";
?>
Avatar billede fangel Nybegynder
24. november 2003 - 22:02 #8
og det virkede?

Morten
Avatar billede detox Nybegynder
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);
Avatar billede detox Nybegynder
24. november 2003 - 22:04 #10
Avatar billede fangel Nybegynder
24. november 2003 - 22:05 #11
interesant... multisort() virker heller ikke :(

Morten
Avatar billede detox Nybegynder
24. november 2003 - 22:08 #12
multisort kunne jeg nu heller ikke rigtigt få til det?
Avatar billede fangel Nybegynder
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
Avatar billede detox Nybegynder
24. november 2003 - 22:13 #14
Jo, det skulle jeg da mene. Kan du heller ikke få min test til det?
Avatar billede fangel Nybegynder
24. november 2003 - 22:15 #15
tjekker lige...

kan du se noget galt i min phpinfo()

http://mfa.ath.cx/phpinfo.php

Morten
Avatar billede fangel Nybegynder
24. november 2003 - 22:16 #16
rigtigt interesant... den klare det fint !

http://mfa.ath.cx/Stat/src/detox-test.php

Morten
Avatar billede fangel Nybegynder
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
Avatar billede detox Nybegynder
24. november 2003 - 22:22 #18
Ah ja, så var der mening med galskaben ;o)
Avatar billede fangel Nybegynder
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
Avatar billede fangel Nybegynder
24. november 2003 - 22:25 #20
og smidder du et svar

Morten
Avatar billede detox Nybegynder
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)
Avatar billede fangel Nybegynder
06. december 2003 - 12:00 #22
sorry - har glemt at lukke - nu for du dine point...

Morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester