usort() | Értékek szerint rendezi a tömböt, újra indexeléssel. |
uasort() | Értékek szerint rendezi a tömböt, és fenntartja az indextársítást.
Visszatérési érték: Mindig IGAZ értéket ad vissza. PHP verzió: 4+ PHP változásnapló: PHP 8.2.0: Most TRUE-t ad vissza (korábban bool-t adott vissza) PHP 8.0.0: Ha a visszahívás azt várja, hogy egy paramétert referenciaként adnak át, akkor most egy E_WARNING-et ad vissza. |
uksort() | Index, azaz, kulcsok szerint rendezi a tömböt |
A feltételes hármas: ($a < $b) ? -1 : 1;
A ( ? : ) operátor esetén, a kérdőjel előtt egy logikai kifejezés szerepel.
Ha a kiértékelés eredménye igaz,
akkor a kérdőjel "?" és a ":" kettőspont közötti értéket adja vissza az operátor,
ellenkező esetben a ":" kettőspont utáni értéket.
<?php function value_sort($a, $b) { if ($a == $b) return 0; return ($a < $b) ? -1 : 1; } $adat[0]=4; $adat[1]=2; $adat[2]=8; $adat[3]=6; $tombrehossz=count($adat); echo "Rendezés előtt, tömb hossza = ".$tombrehossz."<br><br>"; usort($adat,"value_sort"); foreach($adat as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } echo "<br><br>"; $tombruhossz=count($adat); echo "Rendezés után, tömb hossza = ".$tombruhossz."<br>"; ?> |
Rendezés előtt, tömb hossza = 4 [0] => 2 [1] => 4 [2] => 6 [3] => 8 Rendezés után, tömb hossza = 4 |
<?php function valueindex_sort($a, $b) { if ($a == $b) return 0; return ($a < $b) ? -1 : 1; } $num["a"]=4; $num["b"]=2; $num["c"]=8; $num["d"]=6; uasort($num, "valueindex_sort"); foreach($num as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } ?> |
[b] => 2 [a] => 4 [d] => 6 [c] => 8 |
<?php function key_sort($a, $b) { if ($a == $b) return 0; return ($a < $b) ? -1 : 1; } $tomb["cukor"]=8; $tomb["dinnye"]=6; $tomb["alma"]=4; $tomb["bab"]=2; uksort($tomb, "key_sort"); foreach($tomb as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } ?> |
[alma] => 4 [bab] => 2 [cukor] => 8 [dinnye] => 6 |
Megjegyzés:
Teszteléshez az első négynek, nagyobb index értéket határozunk meg.
<table class="leirastabla"> <tr> <td><br>usort()<br><br> <?php function string_sort($a, $b) { if ($a == $b) return 0; return ($a < $b) ? -1 : 1; } // ---------------------------------- $szavak[50] = 'Öv Szíj'; $szavak[51] = 'öv szíj'; $szavak[52] = 'Őrző Védő'; $szavak[53] = 'őrző védő'; $szavak[4] = 'Üveg Törött'; $szavak[5] = 'üveg törött'; $szavak[6] = 'Űz Tűz'; $szavak[7] = 'űz tüz'; $szavak[8] = 'Út Kátyú'; $szavak[9] = 'út kátyú'; $szavak[10] = 'Ír Gépel'; $szavak[11] = 'ír gépel'; $szavak[12] = 'Óval Írd'; $szavak[13] = 'óval írd'; $szavak[14] = 'Évek Idők'; $szavak[15] = 'évek idők'; $szavak[16] = 'Álom Vágy'; $szavak[17] = 'álom vágy'; $szavak[18] = 'Alom Fészek'; $szavak[19] = 'alom fészek'; $szavak[20] = 'Igaz Hamis'; $szavak[21] = 'igaz hamis'; $szavak[22] = 'igáz gáz'; $szavak[23] = 'igér bátor'; $szavak[24] = 'őrzi védi'; $szavak[25] = 'öröm károm'; $szavak[26] = 'örökre soha'; $szavak[27] = 'tömlő cső'; $szavak[28] = 'teve pupos'; $szavak[29] = 'ömlő áradó'; $szavak[30] = 'ööö ők'; $szavak[31] = 'Bátor Merész'; $szavak[32] = 'Fürész Balta'; $szavak[33] = 'Bába Szülész'; // ---------------------------------- $Aszavak=$szavak; $Bszavak=$szavak; $Cszavak=$szavak; // ---------------------------------- usort($Aszavak,"string_sort"); foreach($Aszavak as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } echo "</td><td><br>uasort()<br>"; uasort($Bszavak, "string_sort"); foreach($Bszavak as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } echo "</td><td><br>uksort()<br>"; uksort($Cszavak, "string_sort"); foreach($Cszavak as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } ?> </td></tr> </table> |
Rendez, és újra indexel. usort() [0] => Alom Fészek [1] => Bába Szülész [2] => Bátor Merész [3] => Fürész Balta [4] => Igaz Hamis [5] => alom fészek [6] => igaz hamis [7] => igáz gáz [8] => igér bátor [9] => teve pupos [10] => tömlő cső [11] => Álom Vágy [12] => Évek Idők [13] => Ír Gépel [14] => Óval Írd [15] => Öv Szíj [16] => Út Kátyú [17] => Üveg Törött [18] => álom vágy [19] => évek idők [20] => ír gépel [21] => óval írd [22] => ömlő áradó [23] => örökre soha [24] => öröm károm [25] => öv szíj [26] => ööö ők [27] => út kátyú [28] => üveg törött [29] => Őrző Védő [30] => őrzi védi [31] => őrző védő [32] => Űz Tűz [33] => űz tüz | Rendez, index megtarásával. uasort() [18] => Alom Fészek [33] => Bába Szülész [31] => Bátor Merész [32] => Fürész Balta [20] => Igaz Hamis [19] => alom fészek [21] => igaz hamis [22] => igáz gáz [23] => igér bátor [28] => teve pupos [27] => tömlő cső [16] => Álom Vágy [14] => Évek Idők [10] => Ír Gépel [12] => Óval Írd [50] => Öv Szíj [8] => Út Kátyú [4] => Üveg Törött [17] => álom vágy [15] => évek idők [11] => ír gépel [13] => óval írd [29] => ömlő áradó [26] => örökre soha [25] => öröm károm [51] => öv szíj [30] => ööö ők [9] => út kátyú [5] => üveg törött [52] => Őrző Védő [24] => őrzi védi [53] => őrző védő [6] => Űz Tűz [7] => űz tüz | Rendez, index szerint. uksort() [4] => Üveg Törött [5] => üveg törött [6] => Űz Tűz [7] => űz tüz [8] => Út Kátyú [9] => út kátyú [10] => Ír Gépel [11] => ír gépel [12] => Óval Írd [13] => óval írd [14] => Évek Idők [15] => évek idők [16] => Álom Vágy [17] => álom vágy [18] => Alom Fészek [19] => alom fészek [20] => Igaz Hamis [21] => igaz hamis [22] => igáz gáz [23] => igér bátor [24] => őrzi védi [25] => öröm károm [26] => örökre soha [27] => tömlő cső [28] => teve pupos [29] => ömlő áradó [30] => ööö ők [31] => Bátor Merész [32] => Fürész Balta [33] => Bába Szülész [50] => Öv Szíj [51] => öv szíj [52] => Őrző Védő [53] => őrző védő |
<table class="leirastabla"> <tr> <td><br>usort()<br><br> <?php function vegyes_sort($a, $b) { if ($a == $b) return 0; return ($a < $b) ? -1 : 1; } // ---------------------------------- $nrtomb["cukor"]=18; $nrtomb["dinnye"]=16; $nrtomb["alma"]=14; $nrtomb["bab"]=12; $nrtomb[0]=9; $nrtomb[3]=17; $nrtomb[1]=15; $nrtomb[2]=10; $nrtomb[10]=4; $nrtomb[12]=8; $nrtomb[21]=2; $nrtomb[23]=6; $nrtomb["d"]=3; $nrtomb["b"]=5; $nrtomb["c"]=7; $nrtomb["a"]=1; // ---------------------------------- $Atomb=$nrtomb; $Btomb=$nrtomb; $Ctomb=$nrtomb; // ---------------------------------- usort($Atomb,"vegyes_sort"); foreach($Atomb as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } echo "</td><td><br>uasort()<br>"; uasort($Btomb, "vegyes_sort"); foreach($Btomb as $key => $value) { echo "[" . $key . "] => " . $value ."<br>"; } echo "</td><td><br>uksort()<br>"; uksort($Ctomb, "vegyes_sort"); foreach($Ctomb as $key => $value) { echo "[" . $key . "] => " . $value ."<br>";; } ?> </td></tr> </table> |
usort() [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 12 [11] => 14 [12] => 15 [13] => 16 [14] => 17 [15] => 18 | uasort() [a] => 1 [21] => 2 [d] => 3 [10] => 4 [b] => 5 [23] => 6 [c] => 7 [12] => 8 [0] => 9 [2] => 10 [bab] => 12 [alma] => 14 [1] => 15 [dinnye] => 16 [3] => 17 [cukor] => 18 | uksort() [0] => 9 [1] => 15 [2] => 10 [3] => 17 [10] => 4 [12] => 8 [21] => 2 [23] => 6 [a] => 1 [alma] => 14 [b] => 5 [bab] => 12 [c] => 7 [cukor] => 18 [d] => 3 [dinnye] => 16 |