Turli xil masalalarni yechishda tez-tez massiv ko'rinishida saqlanayotgan
ma’lumotlarni saralash zarur bo‘lib turadi. Agar bu masalani Si da yechmoqchi
bo’lsak, u holda o‘ntagacha kod satrlari yozish kerak boladi, PHP da esa bu bitta
Massivlarni saralashda, bitta o‘zgartirish kiritish yordamida ularning tartibini
alifbo yoki raqamli tartibga o‘tkazish mumkin. PHP da ikkita son yoki ikkita
matnli satrni taqqoslash imkoniyati mavjud, biroq ko‘p o‘lchovli massivlarning
elementlari ham massivdan iborat. PHP ning ikkita massivni taqqoslash imkoniyati
mavjud emas, shuning uchun ularni taqqoslashda metodlar yaratish zarur.
Massivlarni foydalanuvchi tomonidan aniqlangan funksiya yordamida saralash:
usort(),uksort(),uasort(). Massiv qiymatlarini saralashni oddiy ikkita yo‘li
(kamayish yoki o‘sish tartibi) dan tashqari PH P da foydalanuvchi tomonidan
berilgan biror-bir mezon (kriteriya) yordamida ham saralash mumkin. Bu mezonlar
funksiya yordamida berilib, funksiya nomi maxsus usort() yoki uksort() saralash
funksiyalarida parametr sifatida ko‘rsatiladi. Ushbu maxsus funksiyalar
foydalanuvchi tomonidan aniqlangan funksiyalar yordamida mos holda usort()
massiv elementlari qiymatlarini, uksort() esa - massiv kaliti qiymatlarini saralaydi.
Bu ikkala funksiya ham agar saralash ijobiy yakun topsa, true ni, aks holda false ni
qaytaradi.
Sintaksisi:
usort(massiv, saralovchi funksiya)
uksort(massiv, saralovchi funksiya)
Massivning har bir elementi uchun ixtiyoriy funksiyani qo‘llash.
Ba’zan bir xil amalni massivning barcha elementlari uchun qoilash yoki ularni
bir xil shaklda o‘zgartirish talab etiladi. Buning uchun array_walk() funksiyasidan
foydalaniladi. Sintaksisi: int array_walk(array massiv, string funksiya [, mixed
parametr]) Ko'rib turganingizdek, bu funksiya uchta parametr qabul qiladi.
Birinchisi, massiv — qayta ishlanishi lozim bo'Igan massiv. Ikkinchisi — funksiya
— massivning har bir elementini qabul qiluvchi foydalanuvchi tomonidan
aniqlangan funksiya. Uchinchi parametr — zarur bo'lmagan parametr bo'lib, u
ishlatilganda foydalanuvchi tomonidan aniqlangan funksiyaga parametr sifatida
beriladi. Bu funksiya amallar muvaffaqiyatli yakunlanganda true ni, aks holda false
ni qaytaradi. Qoidaga ko'ra, foydalanuvchi tomonidan aniqlangan funksiyaning
ikkita parametri mavjud bo'lib, bu ikki parametrga navbat bilan massivning har bir
elementining qiymat va kalitlari beriladi. Agar array_walk() funksiyasiga murojaat
etilganda, uchinchi parametr ko'rsatilsa, u holda bu parametr foydalanuvchi
tomonidan aniqlangan funksiyaning uchinchi parametri sifatida qaraladi. Agar
foydalanuvchi tomonidan aniqlangan funksiya unga berilgandan ko'ra ko'proq
parametrlarni talab qilsa, u holda array walk() ga har gal murojaat etilganda
ogohlantirish haqida xabar chiqaziladi.
Agar massiv qiymatlarining nusxasi bilan emas, balki asli bilan ishlashga
to'g'ri kelinsa, parametrni funksiyaga jo'natma (ssilka) sifatida uzatish kerak
bo'ladi. Biroq, massivning elementlarini o'chirish yoki qo'shish va massiv tarkibini
o'zgartiruvchi harakatlarni amalga oshirish mumkin emas, chunki bu holda
array_walk() ishining natijasi noaniq bo'ladi.
Do'stlaringiz bilan baham: