Sintaksė:
Funkcijos usort () sintaksė pateikta žemiau.
Bulio logotipas (masyvas $ masyvas, atgalinis skambutis ())Ši funkcija turi du argumentus. Abu argumentai yra privalomi. Pirmasis argumentas nurodo masyvą, kuris bus rūšiuojamas. Funkcija „Callback ()“ palygina masyvo reikšmes, kad surikiuotų masyvą, ir pateikia skaitinę vertę. Jei funkcijos callback () argumentai yra vienodi, funkcija grąžins 0. Jei pirmasis callback () funkcijos argumentas yra didesnis nei antrasis argumentas, jis grąžins 1. Jei pirmasis skambinimo () funkcijos argumentas yra mažesnis nei antrasis argumentas, jis pateikia -1. Funkcija usort () grąžina true už sėkmingą rūšiavimą ir neteisingą už nesėkmingą rūšiavimą. Kai kurie šios funkcijos naudojimo būdai parodyti kitoje šios mokymo programos dalyje.
1 pavyzdys: rūšiuokite datos reikšmių masyvą
Šis pavyzdys rodo, kaip datos reikšmių masyvą galima tinkamai surūšiuoti naudojant funkciją usort (). Sukurkite PHP failą naudodami šį scenarijų. $ date_array yra apibrėžtas penkių datų reikšmėmis. rūšiuoti_data () funkcija yra deklaruojama kaip atgalinio skambučio funkcija $ date_array. Masyvo reikšmės išspausdinamos prieš iškviečiant funkciją usort (). Kai funkcija „usort“ () bus iškviesta su masyvu ir atgalinio skambinimo funkcija, ji pavers dvi datos reikšmes laiko žymės reikšmėmis naudodama funkciją strtotime (). Jei abi laiko žymos vertės yra lygios, funkcija grąžins 0. Jei pirmosios laiko žymos vertė yra didesnė už antrosios laiko žymos vertę, funkcija grąžins 1. Jei pirmosios laiko žymos vertė yra mažesnė už antrosios laiko žymos vertę, funkcija grąžins -1. funkcija usort () kelis kartus iškvies atgalinio ryšio funkciją, kol bus $ date_array yra tinkamai surūšiuotas. Tada surūšiuotas masyvas bus atspausdintas naudojant kiekvienam kilpa.
// Apibrėžkite atgalinio skambinimo funkcijąfunkcija sort_date ($ a, $ b)
grįžti strtotime ($ a) - strtotime ($ b);
// Paskelbkite datos reikšmių masyvą
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Prieš rūšiuodami išspausdinkite masyvo reikšmes
aidas "
Datos masyvo reikšmės:
";foreach ($ date_array kaip $ value)
echo $ vertė."
";
// Rūšiuokite masyvą naudodami usort ()
usort ($ date_array, "sort_date");
// Spausdinti masyvą po rūšiavimo
aidas "
Išvestis po rūšiavimo datos masyvo:
";foreach ($ date_array kaip $ value)
echo $ vertė."
";
?>
Išvestis:
Ši išvestis bus rodoma paleidus scenarijų iš serverio.
2 pavyzdys: rūšiuokite asociacinį masyvą
Šis pavyzdys parodo, kaip asociacinį masyvą galima rūšiuoti naudojant funkciją usort (). Sukurkite PHP failą naudodami šį scenarijų. rūšiuoti_pavadinimai () funkcija yra paskelbta atgalinio skambučio funkcija, norint surikiuoti masyvą pagal masyvo reikšmes. Trikampis operatorius naudojamas rūšiuoti_pavadinimai () funkcija palyginti asociatyvaus masyvo reikšmes. Jei abi vertės yra lygios, tada atgalinio ryšio funkcija grąžins 0. Jei pirmojo argumento reikšmė yra didesnė nei antrojo argumento reikšmė, tada atgalinio skambinimo funkcija grąžins 1. Jei pirmojo argumento reikšmė yra mažesnė nei antrojo argumento reikšmė, tada atgalinio skambinimo funkcija grąžins -1. usort () surūšiuos masyvą naudodamas atgalinio ryšio funkciją, o rūšiuojamas masyvas bus atspausdintas naudojant kiekvienam kilpa.
// Apibrėžkite funkciją asociaciniam masyvui rūšiuotifunkcija rūšiuoti_pavadinimai ($ a, $ b)
grąžinti $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Apibrėžkite asociatyvų masyvą
$ asmenys = masyvas ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Rūšiuoti masyvą
usort ($ asmenys, "rūšiuoti_pavadinimai");
// Spausdinti rūšiuojamą masyvą
aidas "Rūšiuoto masyvo vertės:
";
foreach ($ asmenys kaip $ asmuo)
echo $ asmuo. "
";
?>
Išvestis:
Ši išvestis bus rodoma paleidus scenarijų iš serverio.
3 pavyzdys: rūšiuokite dvimatį masyvą
Šis pavyzdys parodo, kaip galima sutvarkyti dvimatį masyvą naudojant funkciją usort (). Sukurkite PHP failą naudodami šį scenarijų. sort_array () funkcija yra paskelbta atgalinio skambučio funkcija, norint surikiuoti masyvą pagal masyvo reikšmes. strcmp () funkcija naudojama atgalinio skambučio funkcijoje, norint palyginti masyvo reikšmes. Jei abi reikšmės yra lygios, funkcija strcmp () grąžins 0. Jei pirmojo argumento reikšmė yra didesnė nei antrojo argumento reikšmė, funkcija strcmp () grąžins 1. Jei pirmojo argumento reikšmė yra mažesnė nei antrosios argumento reikšmė, funkcija strcmp () grąžins -1. „usort“ () surūšiuos masyvą naudodamas atgalinio ryšio funkciją, o išrūšiuoto masyvo struktūra bus atspausdinta naudojant spausdinti_r () funkcija.
// Apibrėžkite funkciją dviejų matmenų masyvui rūšiuotifunkcija sort_array ($ a, $ b)
grąžinti strcmp ($ a ['a'], $ b ['a']);
// Paskelbkite dviejų matmenų masyvą
$ animals = masyvas (masyvas ("a" => "Liūtas"), masyvas ("a" => "Elnias"), masyvas ("a" => "Triušis"), masyvas ("a" => "Beždžionė "));
// Rūšiuoti masyvą
usortas ($ gyvūnai, "sort_array");
// Spausdinti rūšiuojamą masyvą
aidas "Masyvo vertės po usort ():
";";
spausdinti_r ($ gyvūnai);
aidas "
?>
Išvestis:
Ši išvestis bus rodoma paleidus scenarijų iš serverio.
Išvada:
usort () yra naudinga funkcija rūšiuojant tam tikrus duomenų tipus, kurie negali teisingai rūšiuoti įprastų PHP rūšiavimo funkcijų. Funkcijos „usort ()“ atgalinio skambučio funkcija apibrėžiama pagal reikšmių rūšis, kurių reikia rūšiuoti. Ši pamoka padės skaitytojams žinoti, kaip naudoti „usort“) funkciją ir pritaikyti ją savo scenarijuje, remiantis reikalavimu.