PHP
June 7, 2019

Bog'langan massivlar

Bog'langan massivlar - indekslangan massivlar bilan o'xshash, faqat massivdagi ma'lumotlar ketma-ketlikda raqamlanish o'rniga, foydalanuvchi tomonidan kiritilgan kalit bo'ladi. Ya'ni:



Bog'langan massivni yaratish

Xuddi indekslangan massivga o'xshab, php'da bog'langan massivning ham 2 xil yaratish usuli bor,

Bog'langan massivni yaratishning 1-yo'li sintaksisi:

<?php
/* 
    1- to'g'ridan-to'g'ri massivni ishga tushirish
*/

$avto = array("moshina" => "Captiva", "moto" => "Suzuki", "samolyot" => "Boeing");

?>

Bog'langan massivni yaratishning 2-yo'li sintaksisi:

<?php
/* 
    2- taqsimlangan massivni ishga tushirish
*/

$computer["Apple"] = "20000quot;;
$computer["Acer"] = "1000quot;;
$computer["Asus"] = "1500quot;;

?>

Massivni qanday ishga tushirishimizni ahamiyati yo'q, massivdan elementlarni olishga ega bo'laveramiz. Namuna:

<?php
/* 
    Massivga kirish
*/

echo "2-massivga kirish...\n";
echo $computer["Apple"], "\n";
echo $computer["Acer"], "\n";
echo $computer["Asus"], "\n";

echo "1-massivga kirish...\n";
echo $avto["moshina"], "\n";
echo $avto["moto"], "\n";
echo $avto["samolyot"], "\n";

?>

Ekranda quyidagi natijani ko'ramiz:

2-massivga kirish...
20000$
1000$
1500$
1-massivga kirish...
Captiva
Suzuki
Boeing

Bog'langan massivlarda ham sikllarni ishlatolamiz. Bu sikllar albatta for va foreach sikllardir.

For siklini ishlatish

Bog'langan massivni takrorlash uchun for siklidan foydalanganimizda, biz massivning uzunligi/o'lchamini bilishimiz kerak. Bilish uchun count() funksiyasi ishlatiladi.

Bog'langan massivda indeks - son yoki ketma-ket emasligi sababli, biz indeksning qiymatlari va kalitlarini topib olishimiz kerak. Biz array_keys() funksiyasidan bog'langan massivdagi kalitlarning massivini olish uchun foydalanamiz.

Quyidagi namunada for sikli orqali massivni ichidagi elementlarni olish ko'rsatilgan:

<?php

$avto = array("moshina" => "Captiva", "moto" => "Suzuki", "samolyot" => "Boeing");

//massiv o'lchamini topish


$size = count($avto);

//massiv kalitlarini olish


$keys = array_keys($avto);

//for siklidan foydalanish


for($i = 0; $i < $size; $i++)
{
    echo $avto[$keys[$i]] ." - ". $keys[$i] ."\n";
}

?>

Ekranga chiqqan natija:

Captiva - moshina
Suzuki - moto
Boeing - samolyot

Foreach siklidan foydalanish

Bog'langan massivni takrorlash uchun foreach siklidan foydalanish bu eng yaxshi tanlov. Sababi sizda bor yuqoridagidek for sikliga o'xshash massivni o'lchamini olish shart emas. foreach sikliga qo'ysangiz va foydalanishni bilsangiz bas.

<?php 

$avto = array("moshina" => "Captiva", "moto" => "Suzuki", "samolyot" => "Boeing");

foreach($avto as $kalit=> $qiymat){
    echo $qiymat." - ".$kalit."\n";
}
?>

Ekranga chiqqan natija:

Captiva - moshina
Suzuki - moto
Boeing - samolyot

as $kalit=>$qiymat ga tushunmadingizmi? Unda qarang. Bizda bir sumka bor. Sumkani ichida har xil kitoblar bor. Masalan, badiiy, fantastik va h.k. Fantastik kitobga Garri Poterni misol qilamiz. Demak buni massiv sifatida oladigan bo'lsak, $kitoblar= array("fantastik" => "Garri Potter"); paydo bo'ladi. Bu yerda kalit ya'ni $kalit - kitobning fantastik janrdaligi va qiymat ya'ni $qiymat kitobning nomi.


Bu massiv turining foydali tomonlaridan biri bu bitta massivda 2 xil ma'lumot turini saqlash imkoni. Bu degani joyni tejash. Bizga moshinaning nomini o'zi kerak bo'ladigan bo'lsa, faqat nomini yoki moshinaning kompaniyasini olmoqchi bo'lsak kompaniyasi yoki ikkovini ham bir vaqtda olishimiz mumkin.


Tutorials.uz - telegram kanali O'zbekiston bo'ylab bepul dasturlash darslarini ishlab chiquvchi holis kanal.