Forum » Programiranje » PHP sortiranje Arraya
PHP sortiranje Arraya
*ziga* ::
Zivjo.Imam problem.Npr da imam array ime & starost
Jure 12
Miha 17
Jaka 11
In jaz bi jih sortiral po starosti(vrjetno s sort()).To ze znam narediti ampak problem je kako bi potem ohranil ime pri letih?
Jure 12
Miha 17
Jaka 11
In jaz bi jih sortiral po starosti(vrjetno s sort()).To ze znam narediti ampak problem je kako bi potem ohranil ime pri letih?
SeTAr ::
$arr = array( array("ime" => "Jure", "starost" => 12), array("ime" => "Miha", "starost" => 17), array("ime" => "Jaka", "starost" => 11) ); function cmp(a, b){ strnatcmp($a["starost"], $b["starost"]); } usort($arr, "cmp");
MrBrdo ::
Prav za tvoj primer bi blo verjetno to najboljše:
Kot pa je že nekdo zgoraj nakazal bi bilo bolje če bi imel ime in starost posebej. V tejle moji kodi zna bit tudi problem, če tisti string slučajno nebi bil pravilnega formata (številka na koncu). Potem bi moral še kakšno vrstico error handlinga dodat ampak you get the point.
$arr = array("Jure 12", "Miha 17", "Jaka 11"); function cmp($a, $b) { preg_match('/\\d+$/', $a, $ma); preg_match('/\\d+$/', $b, $mb); if ($ma[0] == $ma[1]) return 0; return (intval($ma[0]) < intval($mb[0])) ? -1 : 1; } usort($arr, "cmp"); print_r($arr);
Kot pa je že nekdo zgoraj nakazal bi bilo bolje če bi imel ime in starost posebej. V tejle moji kodi zna bit tudi problem, če tisti string slučajno nebi bil pravilnega formata (številka na koncu). Potem bi moral še kakšno vrstico error handlinga dodat ampak you get the point.
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
Gost ::
PHP tega nima v osnovnih funkcijah. Zato moraš napisati svojo.
Tako funkcijo najdeš med komentarji na php.net.
<?php function sort2d( &$arrIn, $index = NULL, $sort = 'asort') { // pseudo-secure--never allow user input into $sort if (strpos($sort, 'sort') === false) {$sort = 'asort';} $arrTemp = array(); $arrOut = array(); foreach ( $arrIn as $key=>$value ) { $arrTemp[$key] = is_null($index) ? reset($value) : $value[$index]; } $sort($arrTemp); foreach ( $arrTemp as $key=>$value ) { $arrOut[$key] = $arrIn[$key]; } $arrIn = $arrOut; } $array = array( array(Jure, 12), array(Miha, 17), array(Jaka, 11) ); sort2d($array, 1); var_dump($array); ?>
Tako funkcijo najdeš med komentarji na php.net.
keworkian ::
Madona kaksne komplikacije za tako brezvezno rec. Ljudje na php.net res nimajo drugega dela.
Obscenities in B-Flat
Gost ::
keworkian ::
Samo zate Gost.
$t = array("Jure 12", "Miha 17", "Jaka 11","Samir 25","Janko 123", "Stanko 443"); $s = array(); foreach($t as $g) { preg_match("#([a-zA-Z]{4,})?\s(\d{2,})#",$g, $m); $s[$m[2]] = $m[1]; } ksort($s,SORT_NUMERIC); print_r($s);
Obscenities in B-Flat
Zgodovina sprememb…
- spremenil: keworkian ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | php array in path določenega keya:Oddelek: Izdelava spletišč | 1364 (1192) | HardFu |
» | [java] funkcija ekvivalentna print_r v PHPOddelek: Programiranje | 1685 (1448) | sverde21 |
» | [PHP] primerjava besed v stavkihOddelek: Programiranje | 1088 (975) | rokpok |
» | HTML forma in datumOddelek: Izdelava spletišč | 1806 (1542) | Muzo |
» | php in preg_replace - regex kako zajeti tekst med <script in .. </scriptOddelek: Programiranje | 1030 (939) | blackmumba |