PHP massivlar (array)
Bitta o’zgaruvchi bitta qiymat saqlaydi. O’nta mahsulot nomi kerak bo’lsa, o’nta o’zgaruvchi yaratish mantiqsiz. Massiv — tartiblangan qiymatlar ro’yxati.
Massiv yaratish
print_r massivni o’qish uchun qulay ko’rinishda chiqaradi; count —
elementlar soni.
Indeks orqali murojaat
Sanoq noldan boshlanadi: birinchi element [0], uchinchisi [2].
Oxirgi elementga murojaat:
Element qo’shish
$massiv[] = ...— oxiriga qo’shish (eng ko’p ishlatiladigan);array_push— oxiriga, bir nechta birdan;array_unshift— boshiga.
Element o’chirish
unset bilan o’rtadan o’chirish mumkin, lekin indekslar qayta
raqamlanmaydi:
array_values indekslarni 0 dan qayta tartiblaydi — bu tuzoqni bilish
muhim.
Massiv bo’ylab yurish
Sikllar darsidagi foreach — massiv uchun asosiy vosita.
Qidirish va tekshirish
Saralash
Foydali funksiyalar
Filtrlash va o’zgartirish
array_filter— shartga mos elementlarni qoldiradi (indekslar saqlanadi — kerak bo’lsaarray_valuesqo’llang);array_map— har elementni o’zgartiradi.
fn($n) => ... — qisqa funksiya yozuvi (PHP 7.4 dan).
Massivni birlashtirish va kesish
... — yoyish operatori (PHP 7.4 dan), array_slice($massiv, boshi, soni)
— bo’lak ajratadi.
Matnga aylantirish
implode massivni matnga, explode matnni massivga aylantiradi — forma
va fayl bilan ishlashda tez-tez kerak bo’ladi.
Ichma-ich massiv
Amaliy mashq
- Uch elementli massiv yarating va
print_rbilan ko’ring; []bilan yangi element qo’shing;count,maxvaarray_sumni ishlating;foreachbilan barcha elementni chiqaring;sortdan keyin asl massiv o’zgarganini tasdiqlang;array_filterbilan 10 dan katta sonlarni ajrating.
Qisqacha xulosa
- Massiv
[...]bilan yaratiladi, indeks noldan boshlanadi. $massiv[] = ...oxiriga qo’shadi;array_pop/array_shiftoladi.unsetindekslarni qayta raqamlamaydi —array_valuesyordam beradi.in_arraymavjudlikni,array_searchindeksni beradi (!== false).sortmassivning o’zini o’zgartiradi.array_filter,array_map— filtrlash va o’zgartirish.implode/explode— massiv va matn orasida o’girish.
Keyingi darsda assotsiativ massivlar — kalit bilan ishlash.