Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sortiranje array-a?

[es] :: PHP :: Sortiranje array-a?

[ Pregleda: 5009 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

m_k
Sarajevo [BiH]

Član broj: 29364
Poruke: 340
*.PPPoE-6020.sa.bih.net.ba.

Sajt: www.mkscripts.net


Profil

icon Sortiranje array-a?26.10.2006. u 20:28 - pre 212 meseci
Imam array koji izgleda ovako i treba da ga portiram po ovom 'score'. Kako to najbrze izvesti (meni na pamet pada samo sa dvije foreach petlje, ali ima li sta brze)?

Code:
Array
(
    [mujo] => Array
        (
            [score] => 12
            [grad] => sa
        )

    [igor] => Array
        (
            [score] => 16
            [grad] => za
        )

    [zlaja] => Array
        (
            [score] => 10
            [grad] => bg
        )

)


Treba da dobijem
- igor
- mujo
- zlaja
May the force be with you...
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Sortiranje array-a?26.10.2006. u 21:03 - pre 212 meseci
Možda nešto ovako:
Code:

$testArray = Array('mujo' => Array('score' => 12, 'grad' => 'sa'), 'igor' => Array('score' => 16, 'grad' => 'za'), 'zlaja' => Array('score' => 10, 'grad' => 'bg'));

function compare_score($a, $b) {
  $aScore = $a['score'];
  $bScore = $b['score'];
  if($aScore == $bScore) return 0;
  else return ($aScore > $bScore) ? -1 : 1;
}
uasort($testArray, 'compare_score');

echo '<pre>'.print_r($testArray, true).'</pre>';
echo '<pre>'.print_r(array_keys($testArray), true).'</pre>';

Banned - Not available
 
Odgovor na temu

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
195.252.90.*



+1 Profil

icon Re: Sortiranje array-a?27.10.2006. u 07:26 - pre 212 meseci
A da probamo jos malo brze ;-D



Code:

$array = Array( 

 mujo => Array
        (
            score => 12,
            grad => "sa",
        ),

    igor => Array
        (
            score => 16,
            grad => "za"
        ),

    zlaja => Array
        (
            score => 10,
            grad => "bg"
        )

);



arsort($array);

echo "<pre>";
print_r($array);
echo "</pre>";
 
Odgovor na temu

dzigorija

Član broj: 111504
Poruke: 15
*.migcomputers.co.yu.



Profil

icon Re: Sortiranje array-a?27.10.2006. u 08:03 - pre 212 meseci
Postoji u PHP-u funkcija array_multisort

Vrlo je korisna, ali nije prosta kao ostale, tj. moras da procitas i razumes stranu iz manuala da bi shvatio kako radi.
 
Odgovor na temu

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
*.telenor.co.yu.



+1 Profil

icon Re: Sortiranje array-a?27.10.2006. u 09:09 - pre 212 meseci
Ne vidim zasto je array_multisort() komplikovanija od bilo koje druge funkcije.
Svejedno, u ovom slucaju mu i arsort() završava posao.




 
Odgovor na temu

m_k
Sarajevo [BiH]

Član broj: 29364
Poruke: 340
*.PPPoE-3690.sa.bih.net.ba.

Sajt: www.mkscripts.net


Profil

icon Re: Sortiranje array-a?27.10.2006. u 09:16 - pre 212 meseci
Da, arsort() je odradio ono sto se trazi.
May the force be with you...
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.dynamic.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Sortiranje array-a?27.10.2006. u 12:05 - pre 212 meseci
Citat:
m_k: Da, arsort() je odradio ono sto se trazi.


Tacno, samo sto ce arsort() da radi ono sto treba samo u ovom specificnom primeru. Sta ce se desiti ako u stvarnom programu imas, ili sutra treba da dodas jos neki parametar, naprimer id svakog korisnika, pa tvoj array sada izgleda ovako:

Code:

$array = Array( 
 mujo => Array
        (
            id => 1,
            score => 12,
            grad => "sa"
        ),

    igor => Array
        (
            id => 2,
            score => 16,
            grad => "za"
        ),

    zlaja => Array
        (
            id => 3,
            score => 10,
            grad => "bg"
        )
);


Zbog ovoga ti toplo preporucujem da koristis ono sto je Br@nkoR napisao.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
*.telenor.co.yu.



+1 Profil

icon Re: Sortiranje array-a?30.10.2006. u 13:36 - pre 212 meseci
Ili još bolje array_multisort() :D

 
Odgovor na temu

dddtux

Član broj: 130928
Poruke: 35
80.74.165.*



Profil

icon Re: Sortiranje array-a?19.03.2007. u 08:14 - pre 207 meseci
Imam slicnu f-ju:

function rang($a, $b){
if($a[broj_elementa_u_nizu] == $b[broj_elementa_u_nizu])
return 0;
else if ($a[broj_elementa_u_nizu] < $b[broj_elementa_u_nizu])
return 1;
else
return -1;
}

usort($niz, 'rang');

gde je broj_elementa_u_nizu na primer 9. Ako su dva elementa jednaka, kako da tada poredi i vrednosti elementa broj 8. (Npr. [9] je uspeh ucenika. Ako dva ucenika imaju isti uspeh, da prednost ima ucenik koji ima vise diploma ; broj diplome = [8])?

Hvala unapred


RESIO SAM PROBLEM sa (uslov1 && uslov2).


[Ovu poruku je menjao dddtux dana 19.03.2007. u 09:46 GMT+1]
 
Odgovor na temu

[es] :: PHP :: Sortiranje array-a?

[ Pregleda: 5009 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.