PHP-də çoxölçülü massivlərdən istifadə. Php nümunələrindəki massivlər çoxölçülü massivi doldurur




Dərsdə php-də massivlərlə işləmək imkanları, massiv elanı, massivlərin növləri: çoxölçülü və assosiativ massivlər haqqında danışılacaq.

  1. Rəqəm indeksləri olan massivlər
  2. $fruits="alma"; $fruits="armud"; $fruits="portağal"; $fruits="ərik";

    Massiv inisializasiyasının bu variantı bu gün praktiki olaraq istifadə edilmir. Massivlərlə işləmək üçün aşağıdakı variantdan istifadə olunur:

  3. Assosiativ massiv
  4. Bu massiv yaratmaq seçimi massiv obyektindən istifadə edir:

    $fruits = massiv(1 => "alma", 2 => "armud", 3 => "portağal", 4 => "ərik"); // PHP 5.4-dən bəri $fruits = massiv[ 1 => "alma", 2 => "armud", 3 => "portağal", 4 => "ərik" ];

    Massiv elementlərinə daxil olmaq

    1 2 3 4 5 6 7 8 $fruits [ 0 ] = "alma" ; $fruits [ 1 ] = "armud" ; $fruits [ 2 ] = "portağal" ; $fruits [ 3 ] = "ərik" ; əks-səda "Massivin ilk elementi". $meyvələr [ 0 ] . "
    "; əks-səda "Massivin ikinci elementi". $meyvələr [ 1 ] . "
    "; əks-səda "Massivin üçüncü elementi". $meyvələr [ 2 ] . "
    " ;

    $fruits="alma"; $fruits="armud"; $fruits="portağal"; $fruits="ərik"; echo "Massivin ilk elementi "dir. $ meyvələr."
    "; echo "Massivin ikinci elementi ". $fruits ."
    "; echo "Massivin üçüncü elementi ". $fruits ."
    ";

    Proqramın icrasının nəticəsi olacaq:

    Əhəmiyyətli: Assosiativ massivdə elementin indeksi rəqəm deyil, söz ola bilər (növ simli)

    Məsələni nəzərdən keçirək:

    Misal: Tələbələrin adlarının, soyadlarının və yaşlarının dəyərləri ilə bir sıra tələbə yaradın. Massiv elementlərinin dəyərlərini göstərin

    $student = massiv("Ad" => Con, "Soyad" => Smith, "Yaş" => 20); echo "istifadəçi adı" . $student["Ad"] . "


    ";

    $student["Ad"] = "John"; $student["soyad"] = "Smit"; $student["Yaş"] = 20; echo "istifadəçi adı" . $student["Ad"] . "
    "; echo "username " . $student["Soyad"] ."
    "; echo "istifadəçinin yaşı " . $student["Yaş"] ."
    ";

    Nəticə:

    Əhəmiyyətli: Sətir açarları (indekslər) həmişə dırnaqlara daxil edilməlidir

    Açarı olmayan indeksləşdirilmiş massivlər:

    Onu da qeyd etmək lazımdır ki, massiv dəyərləri ilə işə salındıqda massivdəki indekslər ümumiyyətlə buraxıla bilər. Sonra adlananı yaradırıq massiv kolleksiyası(kolleksiya obyekti):

    $student = massiv ("John" , "Smith" , 20 );

    $student = massiv("John","Smith", 20);

    Bu halda tərcüməçi özü onlara 0-dan başlayaraq ədədi indekslər təyin edəcək

    Misal tip çevrilmələri və elementin üzərinə yazılması.
    var_dump() prosedurunun istifadəsinə diqqət yetirin

    1 2 3 4 5 6 7 8 9 "a" , "1" => "b" , 2 => "c" , 2 => "d" , ); var_dump ($my_array ); ?>

    "a", "1"=> ​​"b", 2 => "c", 2 => "d",); var_dump($my_massiv); ?>

    Nəticə:

    Massiv(3) ( => sətir(1) "a" => sətir(1) "b" => sətir(1) "d" )

    Misal istifadə edin çoxölçülü massiv və onun elementlərinə çıxışın təşkili

    1 2 3 4 5 6 7 8 9 10 11 12 "1" , 2 => 2 , "multi" => massiv ( "1_1" => "1_1" ) ); var_dump ($array_odnom [ "birinci" ] ); var_dump ($array_odnom [ 2 ] ); var_dump ($array_odnom [ "multi" ] [ "1_1" ] ); ?>

    "1", 2 => 2, "multi" => massiv("1_1" => "1_1")); var_dump($array_odnom["birinci"]); var_dump($array_odnom ); var_dump($array_odnom ["multi"]["1_1"]); ?>

    Nəticə:

    Sətir(1) "1" int(2) sətir(3) "1_1"

    Misal:ölçüləri 3 x 2 olan ikiölçülü massiv yaradın. Onu birinci cərgənin dəyərləri ilə doldurun: "1_1", "1_2", "1_3"; ikinci sətir üçün: "2_1", "2_2", "2_3". Massivin ilk elementini göstərin


    Performans:
    1 2 3 4 5 6 7 8 9 10 11 12 $array_odnom = massiv ( 1 => massiv ( 1 => "1_1" , 2 => "1_2" , 3 => "1_3" ) , 2 => massiv ( 1 => "2_1" , 2 => "2_2" , 3 => "2_3" ) , ); echo $array_odnom [ 1 ] [ 1 ] ;

    $array_odnom = massiv(1 => massiv(1 => "1_1", 2 => "1_2", 3 => "1_3"), 2 => massiv(1 => "2_1", 2 => "2_2" , 3 => "2_3")); echo $array_onenom;

    php2_1 iş: 3 x 3 2D massivi yaradın - Pifaqor vurma cədvəlinin yuxarı sol küncü (1, 2, 3; 4, 6, 8...)



    Laboratoriya işi:
    Tutaq ki, bir növ reklamınız var və bu reklamı göndərməli olduğunuz bir neçə fərqli insan var. Bunu etmək üçün, siz reklamın məzmunu ilə bir boşluq düzəldirsiniz, onun içərisində bir sıra dəyişən parametrlər var: insanların adları massivi və hadisələr silsiləsi. Ekranda yekun elanın bir versiyasını göstərin. Assosiativ massiv də massivləri təyin etmək üçün istifadə edilə bilər.

    Reklam şablonundan istifadə edin və rənglərə əməl edin:

    Qırmızı - massivlər.
    Qəhvəyi - ədədi dəyişən.
    Mavi sabitdir.

    Hörmətli, İvan İvanoviç!
    Sizi dəvət edirik Açıq gün.
    Tədbirin tarixi: 12 may.
    Hörmətlə, Vasili.


    Kodu əlavə edin:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // daimi bəyannamə müəyyən ("İŞARA" , "Hörmətlə, Vasya") ; // alıcı adları üçün massiv$adlar = massiv (... ); // hadisələr üçün massiv$events = massiv ( "op_doors" => "Açıq gün", "vistavka" => "sərgi" , ... ); $str = "Əziz, $names!
    "
    ; $str .= ...; $str .= ...; əks-səda ...;

    // sabitin elanı define("SIGN","Hörmətlə, Vasya"); // alıcı adları üçün massiv $names = massiv(...); // hadisələr üçün massiv $events = array("op_doors" => "açıq qapı", "vistavka" => "sərgi", ...); $str = "Hörmətli $names!
    "; $str .= ...; $str .= ...; əks-səda ...;

Massivləri öyrənməyə davam edirik. Əvvəlki məqalələrdə biz artıq massivləri necə elan etməyi öyrənmişik; başa düşüldü: onlar nə üçündür və harada istifadə edilə bilər; çoxölçülü və assosiativ massivlərlə tanış oldular. İndi massivin elementləri üzərində iterasiya haqqında danışmaq vaxtıdır.
Çox vaxt massivin bütün elementlərini təkrarlamaq və onlarla nəsə etmək lazımdır.

Bunu müxtəlif yollarla edə bilərsiniz: dövrlərin köməyi ilə və olmadan. Məsələn, son məqalədə biz assosiativ massivin bütün açarlarını əldə etdik, təkrarladıq və onları döngədən istifadə edərək göstərdik. foreach. Orada biz bir döngədən istifadə edərək massivin elementləri üzərində iterasiya mövzusu üzərində dayanmadıq, çünki bu, ayrıca mövzuya layiqdir.

Bu gün, sadəcə olaraq, bir massivin elementləri üzərində necə təkrarlaya biləcəyiniz haqqında danışacağıq. Kifayət qədər sayda yeni funksiya ilə tanış olacaqsınız. Yaxşı, onda başlayaq!

Əvvəlcə, döngələrdən istifadə edərək massivin elementləri üzərində iterasiyadan danışaq.

Bunun üçün 3 növ dövrə istifadə olunur. for, foreach və while.

Massivin elementləri üzərində təkrarlama. for() döngəsi

Massiv siyahısının elementləri üzərində təkrarlamaq üçün aşağıdakıları edə bilərsiniz:

1. Əvvəlcə massivin özünü elan edirik;

3. Biz dövrü elan etdikdən sonra üçün, burada sayğacı mötərizədə təyin edirik ("i" dəyişəni sıfır dəyəri ilə elan edilir, əgər bu dəyişən massiv elementlərinin ümumi sayından azdırsa, onda hər iterasiyada "i" dəyəri bir artacaq);

4. Döngənin gövdəsində isə serialın hər bir elementi ilə nə edəcəyinizi artıq təyin edə bilərsiniz. Məsələn, onları sadəcə ekranda göstərə bilərsiniz.

Yuxarıda göstərilənlərin hamısı aşağıdakı kodla təsvir edilmişdir:

"; } ?>

Onun icrası nəticəsində ekranda hər biri yeni sətirdə göstərilən massiv elementlərinin dəyərlərini görəcəyik.

For döngəsi və assosiativ massivlər

Lakin assosiativ massivin elementləri üzərində iterasiya etmək üçün bu üsul daha sadə səbəbdən uyğun deyildir ki, assosiativ massivin indeksləri rəqəmlər deyil, sətirlərdir.

Assosiativ massivin elementləri arasında dövr etmək üçün aşağıdakı tikintidən istifadə edə bilərsiniz:

" .$Mass[$key] ."
"; } ?>

Gördüyünüz kimi, biz assosiativ massiv elan etmişik.

reset() - göstəricini massivin birinci elementinə təyin edir;

next() - göstəricini massivin bir elementi irəli aparır;

key() - cari massiv elementinin açarını qaytarır.

Və sonra döngə gövdəsində massiv elementinin indeksini, oxu və massiv elementinin dəyərini göstəririk. Hər bir indeks-dəyər cütünü yeni sətirdə çap edirik.

Həm də əvəzinə sıfırla() istifadə edilə bilər son(), onda göstərici massivin sonuncu elementinə təyin olunacaq. Ancaq bu vəziyyətdə əvəzinə növbəti() istifadə edin əvvəlki() göstəricini irəli deyil, geri çəkmək üçün.

Beləliklə, biz assosiativ massivin elementlərini tərs qaydada təkrarlaya bilərik.

Yəqin ki, bildiyiniz kimi, dövr üçün yalnız massivlərlə işləmək üçün istifadə edilmir.

Ancaq nəzərdən keçirəcəyimiz növbəti dövr yalnız massivlərlə işləmək üçün istifadə olunur.

Massivin elementləri üzərində təkrarlama. foreach() döngəsi

Velosiped foreach() bizə həm müntəzəm massiv siyahıları, həm də assosiativ siyahılarla işləməyə imkan verir.

Ekranda massiv elementlərinin bütün dəyərlərini göstərən sadə massiv-siyahısının elementləri üzərində təkrarlamaq üçün döngə nümunəsidir.

"; } ?>

Nəticədə ekranda bu massivin elementlərinin bütün dəyərlərini görəcəyik.

Assosiativ massiv üçün bu konstruksiya tam olaraq eyni qalacaq (əlbəttə ki, başlanğıcda siyahı massivi deyil, assosiativ massiv elan edəcəyik) və yenə də massiv elementlərinin bütün dəyərlərini görəcəyik. ekran.

Ancaq yalnız elementlərin dəyərlərini deyil, həm də açarlarını göstərmək istəyiriksə (xatırlayırsınız ki, assosiativ massivlər üçün indekslər sətir dəyəridir), onda bu döngəni bir qədər yaxşılaşdırmaq lazımdır.

$value) (echo $key . "=>" . $value . "
"; } ?>

Və bu halda, ekranda bir cüt görəcəyik: açar - bir dəyər, onların arasında bir ox olacaq.

Massivin elementləri üzərində təkrarlama. while() döngəsi

Massivin bütün elementləri arasında dövr etmək üçün istifadə edə biləcəyimiz başqa bir döngə də dövrədir while().

Bu vəziyyətdə, bu dövrlə birlikdə istifadə edəcəyimiz daha iki funksiya bizə kömək edəcəkdir. Bu xüsusiyyətlərdir siyahı()hər biri().

Massiv siyahıları vəziyyətində biz bu döngədən istifadə edəcəyik - bu kimi:

"; } ?>

Yəqin ki, ekranda massiv elementlərinin dəyərlərini görəcəyimizi təxmin etmisiniz.

Burada funksiya hər biri() massivin cari elementini qaytarır və sonra göstəricini hərəkət etdirir.

Assosiativ massiv vəziyyətində, yalnız massiv elementlərinin dəyərlərini əldə etmək istəsək, prosedur eyni qalır. Ancaq hər bir elementin açarını da əldə etmək istəyiriksə, kodu bir az əlavə etmək lazımdır. Bunun kimi:

" . $ dəyər . "
"; } ?>

Beləliklə, biz həm açarları, həm də dəyərləri əldə edirik.

Döngələrdən istifadə etmədən massiv elementləri üzərində təkrarlayın

Siz döngələrdən istifadə etmədən massivin elementləri üzərində təkrarlaya bilərsiniz. Bunun üçün xüsusi bir funksiyadan istifadə edəcəyik array_walk().

Bu funksiya aşağıdakı kimi işləyir: o, ardıcıl olaraq ayrıca yaradılmış funksiyanı massivin bütün elementlərinə tətbiq etməyə imkan verir. Yəni əvvəlcə müstəqil funksiya yaradırıq, sonra isə istifadə edirik array_walk() onu massivin hər bir elementinə tətbiq edin. Üstəlik, öz-özünə yaradılan funksiyada biz massiv elementində lazım olan istənilən hərəkəti təyin edə bilərik.

Massiv elementinin açarını və dəyərini ekranda göstərəcək, sonra isə istifadə edəcək funksiya yaradaq array_walk() onu massivimizin hər bir elementinə tətbiq edin.

" . $ dəyər . "
"; ) $Mass["Bir"] = 5; $Kütlə["İki"] = 10; $Kütləvi["Üç"] = 15; array_walk($Mass, "f_print"); ?>

Nəticədə ekranda aşağıdakıları görəcəyik.

Massivin elementləri üzərində iterasiya haqqında sizə demək istədiklərim bəlkə də budur.

Bütün bunların necə işlədiyini daha yaxşı başa düşmək üçün sizə hər bir nümunəni özünüz etməyi və bəlkə də öz nümunələrinizlə məşq etməyi məsləhət görürəm.

Növbəti məqalədə müxtəlif yerlərdə massivin elementlərinin əlavə edilməsi və çıxarılmasından danışacağıq.

Şərhlərinizi gözləyirəm. Sosial şəbəkə düymələrindən istifadə edərək məqaləni dostlarınızla paylaşın və hər zaman yeni nəşrlərdən xəbərdar olmaq üçün blog yeniləmələrinə abunə olun.

Anna Kotelnikova sizinlə idi. Uğurlar və tezliklə görüşərik!

(massivdəki massiv, matris)
5. Massivlərlə işləmək üçün funksiyalar (massivdəki massiv, matris)

PHP massivi nədir?

Bu mövzuya imtina edilmiş misallarla başlamaq istərdim. Tutaq ki, bəzilərini nəzərdən keçiririk insan. O var ad, soyad, ünvan, telefon nömrəsi, cinsi, boyu, göz rəngi və s. Bütün bu maddələr haqqında məlumat bir şəxs haqqında məlumatların toplusuna aid edilə bilər.

Massiv elementlər haqqında heç bir spesifikasiya olmadan fərqli tipdə ola bilər. Yalnız bir mövzu olacaq. Bunu deyək veb proqramlaşdırma. Və elementlər olaraq dillər olacaq - HTML, css, JavaScript, PHP, MySQL. Yalnız 5 element.

Son nümunəyə əsasən, bir massiv fərz edək:

veb proqramlaşdırma
1.HTML
2. CSS
3. JavaScript
4.PHP
5. MySQL

İndi bu nümunəyə baxırıq və əsas anlayışları təhlil edirik.

PHP-də massiv elementlərinin sayı sabit olan ümumi bir mövzu ilə əlaqəli eyni tipli ardıcıl düzülmüş verilənlər toplusudur.

Bu nümunədəki massiv çağırılacaq veb proqramlaşdırma.

Hər bir elementin öz sıra yeri, identifikatoru var.
indeks(massiv açarı) - elementin müəyyən edilə biləcəyi seriya nömrəsi və ya mətn dəyəri.

Yuxarıdakı nümunədəki indekslər olacaq 1-dən 5-ə qədər rəqəmsal dəyər. İndeks 2-ə daxil olan zaman biz CSS-i görəcəyik.

PHP-də massiv nümunəsi

İndi yuxarıdakı nümunəyə rus dilində deyil, PHP sintaksisində baxaq. Deyək ki, massiv daha qısa adlandırılacaq - veb. Kvadrat mötərizədə bir indeks daxil ediləcək.
Sadə bir massiv nümunəsinə baxaq, burada indekslər rəqəmli dəyərlərdən ibarət olacaq və biz dəyişənlərə qiymətlər təyin etdiyimiz kimi massiv yaradacağıq.

$web="HTML";
$web="CSS";
$web="JavaScript";
$web="PHP";
$web="MySQL";

$web; // bu dəyişən 5 elementdən ibarət massivdən ibarətdir

// massivin elementlərindən birini göstərmək üçün massivdə indeksi təyin etmək kifayətdir.
echo $web; // PHP çıxışı

bir ölçülü massiv

İNDEKS MASSİYASI

Yuxarıda veb proqramlaşdırma ilə biz yalnız bir ölçülü massiv nümunəsini nəzərdən keçirdik.
Nadir hallarda bu şəkildə yaradılır. Bu, daha çox vizual olaraq massivin strukturunu göstərir. Daha tez-tez başqa üsula müraciət edirlər.

$web=array("HTML","CSS","JavaScript","PHP","MySQL");
echo $web; // "HTML" çıxışı
echo $web; // "JavaScript" çıxışı
echo $web; // "PHP" çıxışı

Əgər siz indeks dəyərlərini təyin etmək istəyirsinizsə, onda onlar aşağıdakı kimi göstərilməlidir. İmza => bir qiymətə indeks təyin etmək üçün göstəricidir və ya əksinə indeks dəyərinə.

$web=array(1=>"HTML",2=>"CSS",3=>"JavaScript",4=>"PHP",5=>"MySQL");
echo $web; // HTML
echo $web; // CSS
echo $web; // PHP
Nümunədə sayma 1-dən başlayır. Buna görə də indeksi 0 olan dəyişən boşdur.

Aşağıdakı misalda biz indeks təyin etməyəcəyik.

$day="Bazar ertəsi"; // indeks 0
$day="Çərşənbə axşamı"; // 1
$day="Çərşənbə"; // 2
$day="Cümə axşamı"; // 3
$day="Cümə"; // 4
Sıfırdan ardıcıl doldurma olduğunu görə bilərsiniz.

ASSOCIATE ARRAY

Çox vaxt massiv elementi üçün hərf indeksi yaratmağa ehtiyac var. Yuxarıda qeyd etdiyim kimi, belə göstərici mütləq latın hərflərindən ibarət olmalı, ad dırnaq içərisində olmalıdır. Nümunə olaraq bir insanı götürək.

$user["nick"]="Məntiq";
$user["name"]="Paul";
$user["yaş"]="25";
$user["seks"]="Kişi";

$user; // $user dəyişəni hərf indeksləri olan 4 elementdən ibarət massivdən ibarətdir

// massivin elementini onun əlifba indeksini göstərməklə göstərin
echo $web["ad"]; // "Paul" çap edir
Gördüyünüz kimi, hər şey olduqca sadədir. Yalnız indeks dəyəri qeyd olunur.

İki ölçülü massiv

One-Dimensional Array ilə birinci hissəni qaçırdınızsa, onu oxumağınızı şiddətlə məsləhət görürəm.
Sadə dillə desək, bu, massiv daxilindəki massivdir. Yəni böyük massivin elementləri fərqlidir. Bu cür massivlər skriptin işini xeyli ləngidir, RAM-ı yükləyir, buna görə də bu cür məlumat qruplarını tez bir zamanda emal etmək üçün verilənlər bazaları yaradılmışdır (Verilənlər bazası nədir?), lakin bu barədə daha sonra. İki ölçülü massiv nümunəsinə baxaq.

// Dünyanın hissələrinin adları ilə massiv
$m = massiv("Avropa","Asiya","Afrika","Amerika","Avstraliya və Okeaniya");

// ölkə adları ilə massiv
$s = massiv("Rusiya","Ukrayna","Belarus","Qazaxıstan");

// Baş hərflərin adları ilə massiv
$с = massiv("Moskva","Kiyev","Minsk","Astana");

// Coğrafiya ikiölçülü massiv yaradın
$coğrafiya = massiv($m, $s, $c);
?>
Daxil edilmiş massivlərdə, qeyd etdiyiniz kimi, fərqli sayda element ola bilər. Birölçülü massivlər haqqında olan hissədən belə çıxır ki, massivin hər bir elementi indeksə malik ola bilər. Beləliklə, hər daxil edilmiş massiv üçün bir dəyər təyin edək.

Bunu etmək üçün sonuncu sətri genişləndirin və aşağıdakı kimi yazın.

$coğrafiya = massiv("Dünyanın hissələri"=>$m, "Ölkələr"=>$s, "Paytaxtlar"=>$s);

php massivi funksiyaları

Foreach- massivlərlə işləmək üçün siklik funksiya, burada dövrlərin sayı massiv elementlərinin sayına bərabərdir.

Onun aşağıdakı forması var. PHP kodu

Foreach ($key =>$value kimi massiv)
əmrlər;
Yaxşı, sadəcə bir iş nümunəsi

// məşhur İT ilə massiv yaradın
$names["Ritchie"] = "Dennis";
$names["Tompson"] = "Ken";
$names["Gates"] = "Bill";
$names["Jobs"] = "Stiv";

Foreach ($adlar $ açarı => $ dəyər) (
echo "$value $key";
}
?>
Skript görünəcək

Dennis Ritchie
Ken Thompson
Bill Gates
Stiv Cobs
saymaq- massivdəki elementlərin sayını qaytaran funksiya.

əks-səda sayı ($adlar); // İT nümunəmizdə 4 dəyərini qaytaracaq
Cür massivin elementlərini çeşidləyən funksiyadır. Rəqəmsal indeks dəyərləri üçün faydalıdır.
Arsort massivin elementlərini tərs qaydada çeşidləyən funksiyadır.

Sort($adlar); // ardıcıllıqla çeşidləyir. İndeksdə nömrələr varsa, rahatdır
massiv($adlar); // tərs qaydada çeşidləyin. Yəni indekslərə görə elementlər 3, 2, 1, 0 qaydasında olacaq.
Ayarsız- massiv elementini silən funksiya.

qurulmamış($massiv); // 2-ci indeksdəki massiv elementini silin
qurulmamış($massiv); // bütün massivin silinməsi
Massiv_axtarışı- massivdə axtarış funksiyası. İki arqumenti var. Sadəcə olaraq, onun array_search("nə", harada) var.

$animals="it";
$animals="pişik";
$animals="quş";
echo array_search("pişik",$heyvanlar); // element indeksini - 2 rəqəmini göstərir
Qarışdırın- massiv dəyərlərinin düymələrini qarışdıran funksiya.

Qarışıq ($heyvanlar); // elementləri təsadüfi qaydada düzün
Diqqətinizə görə təşəkkürlər!

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [ 3 ] = "Apache" ;
?>

Massiv elementləri ikiqat dırnaq içərisində adi dəyişənlər, həmçinin kod kimi istifadə edilə bilər

echo "$arr $arr $arr" ;
?>

$arr [ "first" ] = "PHP" ;
$arr [ "ikinci" ] = "MySQL" ;
$arr [ "third" ] = "Apache" ;
?>

Bu halda massiv çağırılır assosiativ, və onun indeksləri deyilir açarlar. Bir sətirdə massiv elementini göstərmək üçün dırnaq işarələrindən (nə ikiqat, nə də tək) istifadə edilməlidir:

əks-səda "$arr $arr $arr";
?>

Assosiativ massivlərin indeksləri olmadığı üçün onları yan keçmək üçün xüsusi bir döngə növü tətbiq edilmişdir - foreach:

foreach($arr olaraq $açar => $dəyər)
{
echo "$ açar = $ dəyər
" ;
}
?>

Döngə nəticəsində üç sətir görünəcək

birinci = PHP
ikinci = MySQL
üçüncü = Apache

Döngələrin hər birində massiv açarına daxil olmağa imkan verən "$key =>" konstruksiyası isteğe bağlıdır və buraxıla bilər:

foreach($dəyər kimi $arr)
{
echo "$ dəyər
" ;
}
?>

Bir sıra funksiyalar həmçinin funksiya kimi massivləri qaytarmağa imkan verir fayl(), faylı oxuyan və məzmununu massiv kimi qaytaran. Massivin hər bir elementi bir sıraya uyğundur.

$arr = fayl("text.txt");
üçün($i = 0; $i< count ($arr ); $i ++)
{
echo $arr[$i]. "
" ;
}
?>

Digər faydalı funksiya funksiyadır partlatmaq(), bu, bir sətri bir neçə fraqmentə bölməyə imkan verir, hər biri massivin ayrıca elementində yerləşdirilir:

$str = "345|[email protected]|http://www.softtime.ru|giriş|parol";
$arr = partlatmaq ("|" , $str );
üçün($i = 0; $i< count ($arr ); $i ++)
{
echo $arr[$i]. "
" ;
}
?>

Skriptin çıxışı belə görünə bilər:

345
[email protected]
http://www.softtime.ru
daxil ol
parol

Tərs funksiyası da var - implode (), bunun üçün verilmiş ayırıcıdan istifadə edərək massivin elementlərini sətirdə birləşdirən:

$arr = "345" ;
$arr = " [email protected]" ;
$arr = "http://www.softtime.ru" ;
$arr = "giriş" ;
$arr = "parol" ;
$str = partlatmaq ("##" , $arr );
echo $str ; //345##[email protected]##http://www.softtime.ru##login##parol
?>

Şərh

Ümumiyyətlə, bir simli bağırsağa salan çoxlu funksiyalar var, onların hamısının nəzərdən keçirilməsi bu məqalənin əhatə dairəsi xaricindədir.

Funksiyadan istifadə edərək massivin fərdi elementini silə bilərsiniz unset(), və funksiyadan istifadə edərək massivin mövcudluğunu yoxlaya bilərsiniz isset(). Gəlin 10 elementdən ibarət massiv təyin edək və hər bir cüt elementi məhv edək.

unset($arr [ 0 ], $arr [ 2 ], $arr [ 4 ], $arr [ 6 ], $arr [ 8 ]);
// Massiv elementlərinin olub olmadığını yoxlayın
üçün($i = 0; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) echo "$arr[$i] elementi müəyyən edilmişdir
"
;
əks-səda "$arr[$i] elementi müəyyən edilməyib
"
;
}
?>

Skriptin nəticəsi aşağıdakı sətirlər olacaq

$arr elementi müəyyən edilməyib
$arr elementi müəyyən edilmişdir
$arr elementi müəyyən edilməyib
$arr elementi müəyyən edilmişdir
$arr elementi müəyyən edilməyib
$arr elementi müəyyən edilmişdir
$arr elementi müəyyən edilməyib
$arr elementi müəyyən edilmişdir
$arr elementi müəyyən edilməyib
$arr elementi müəyyən edilmişdir

Funksiyadan istifadə etməklə unset() bütün massivi bir anda məhv edə bilərsiniz.

$arr = massiv(9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 );
təyin edilmədi($arr);
if(isset($arr )) echo "Massiv təyin olundu";
əks-səda "Massiv müəyyən edilməyib";
?>

Əvvəllər massivlər bir döngə istifadə edərək atılırdı, lakin PHP massivi boşaltmaq üçün xüsusi funksiya təmin edir. çap_r(). Funksiya konsol axınına çıxışa yönəlib, buna görə də nəticələri brauzer pəncərəsinə çıxararkən onu etiketlərlə çərçivəyə salmaq daha yaxşıdır.

:

$arr = "345";
$arr = " [email protected]";
$arr = "http://www.softtime.ru";
$arr = "giriş";
$arr = "parol";
əks-səda "

";
çap_r($arr);
əks-səda "
";
?>

Skriptin çıxışı belə görünür:

massiv
=> 345
=> [email protected]
=> http://www.softtime.ru
=> daxil olun
=> parol
)

Çoxölçülü massivlər

Massiv elementləri təkcə skalyar qiymətlər deyil, həm də massivlərin özləri ola bilər. Bu halda, sözdə çoxölçülü massivlər.

Belə bir cədvəl əldə edək:

Bunu etmək üçün iki ölçülü massiv yaradın:

$arr = massiv(massiv('Vasya' , 'çilingər' , 2500 ),
massiv('Misha', 'inşaatçı', 3000),
massiv('Andrey' , 'sürücü' , 2700 ));
?>

İndi cədvəl aşağıdakı koddan istifadə etməklə göstərilə bilər:

üçün ($i = 0; $i< 3 ; $i ++)
{
üçün ($j = 0; $j< 3 ; $j ++)
{
echo " | " . $arr [ $i ][ $j ];
}
əks-səda "
" ;
}
?>

Nəticə:

| Vasya | çilingər | 2500
| Misha | inşaatçı | 3000
| Andrew | sürücü | 2700

Siz həmçinin 3D, 4D və s. istifadə edə bilərsiniz. massivlər.

Massivlər üzərində əməliyyatlar (reseptlərin toplanması)

1) Massivin elementlərinin sayının müəyyən edilməsi saymaq():

$name massivi yaradaq:

?>

Massivdəki elementlərin sayını müəyyən etmək üçün aşağıdakıları edə bilərsiniz:

əks-səda ‘Massivdəki elementlərin sayı-' . count($name);
?>

Nəticə:

Massivdəki elementlərin sayı - 8

2) Massivlərin birliyi

a) $a və $b iki assosiativ massiv yaradın:

$a = massiv(“a” => ”aa” , “b” => “bb” );
$b = massiv(“c” => ”cc” , “d” => “dd” );
?>

Həm $a massivinin, həm də $b massivinin elementlərini ehtiva edən $c massivi yaratmaq lazım olsun:

$a = massiv("a" => "aa" , "x" => "xx" );
$b = massiv("c" => "cc" , "d" => "dd" );
$c = $a + $b ;
əks-səda "

"
; 
çap_r($c);
əks-səda "
" ;
?>

Nəticə:

massiv
[a] => aa
[x] => xx
[c] => cc
[d] => dd
)

b) $a və $b iki ədədi massiv yaradın:

$a = massiv(10 , 20 );
$b = massiv(100 , 200 , 300 , 400 , 500 );
?>

Onlar artıq $c = $a + $b; konstruksiyası ilə birləşdirilə bilməz. Onları birləşdirmək üçün funksiyadan istifadə etməlisiniz array_merge():

$c = massiv_birləşdirmə($a , $b );
?>

3) Massivin çeşidlənməsi

$name massivindən istifadə edək:

$name = array("Boss" , "Lentin" , "NAV" , "Sonsuz" , "Əjdahalar" , "SiLeNT" , "Doktor", "Vaşaq" );
?>

Tutaq ki, siz massivi əlifba sırası ilə çeşidləmək istəyirsiniz, bunun üçün aşağıdakı koddan istifadə edə bilərsiniz:

sort($name);
əks-səda "

"
; 
print_r($name);
əks-səda "
" ;
?>

Nəticə:

massiv
=> Patron
=> Həkim
=> Əjdahalar
=> Sonsuz
=> Lentin
=> Vaşaq
=> NAV
=> Səssiz
)

Qoy $name massivindən (ən az simvol sayına malikdir) ən qısa elementi seçmək lazım olsun, bu halda kodu istifadə edə bilərsiniz:

$name = array("Boss" , "Lentin" , "NAV" , "Sonsuz" , "Əjdahalar" , "SiLeNT" , "Doktor", "Vaşaq" );
$min = strlen($name [ 0 ]);
$nam = $name [ 0 ];
üçün ($i = 1; $i< count ($name ); $i ++)
{
$len = strlen($name [ $i ]);
əgər ($len< $min )
{
$nam = $name [ $i ];
$min = strlen($nam );
}
}
əks-səda "Ən kiçik uzunluq -". $nam;
?>

4) Massiv daxilində hərəkət

$num massivi yaradaq:

?>

Massivin elementlərini tərs qaydada göstərmək tələb olunsun, bu halda kodu istifadə edə bilərsiniz:

$end = son($sayı);
isə ($end )
{
echo $end . "-";
$end = əvvəlki($sayı);
}
?>

Nəticə:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

Yuxarıdakı kod dəyişdirilə bilər:

$num = diapazon (1 , 10 );
çap_r(massiv_ters($sayı));
?>

Funksiya diapazon(1,10) təsadüfi elementləri olan massiv (1,2,3,4,5,6,7,8,9,10) yaradır. Funksiya array_reverse() massiv götürür və elementləri tərs sıraya qoyur (10,9,8,7,6,5,4,3,2,1)

Funksiyalar növbəti(), hər biri() göstəricini bir element irəli aparın. Funksiya sıfırla() massivdəki 1 elementə göstərici qaytarır. $num massivindən istifadə edək:

$num = massiv(1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 );
?>

Bütün elementləri ardıcıllıqla göstərmək lazım olsun və massivin sonuncu elementində göstəricini massivin birinci elementinə qaytarın. Bu əməliyyat aşağıdakı kodla edilə bilər.

Gününüz xeyir, habrazhiteli!

Mən məqaləmdə PHP-də çoxölçülü assosiativ massivlərin idarə edilməsindən danışmaq istəyirəm. Məncə, çoxölçülü massivdən lazımi məlumatı almaq həmişə əlverişli deyil. Massiv ikiölçülüdürsə, bu bir şeydir:

massiv("açar1" => "dəyər1", "açar2" => "dəyər2")); ?>

O zaman, əlbəttə ki, bizi maraqlandıran dəyərləri əldə etmək asandır:

echo $array["dimension1"]["key1"]; // dəyər1

Bəs n ölçülü massivimiz varsa nə etməli? Məsələn, beş ölçülü:

$array = array("dimension1" => array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "Hey! I\ "m value1", "value2" => "Hey! Mən \"m dəyər2"))))));

Açarla dəyər əldə etmək üçün, məsələn, "dəyər1" üçün aşağıdakı kodu yazmalıyıq:

Echo $array["dimension1"]["dimension2"]["dimension3"]["dimension4"]["dimension5"]["value1"]; // Hey! Mən dəyər 1

Düzgün olsa da, belə rekordu gözəl adlandırmazdım. Mən təklif edirəm ki, bu girişi belə göstərərək bir az daha gözəl edək:

Echo easyA($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value1; // Hey! Mən dəyər 1

Razılaşın, standart rekorddan daha gözəl görünür.

Beləliklə, əvvəlcə massivimizi emal edəcək bir sinif yaratmalıyıq. Gəlin onu easyArray adlandıraq və onu Singleton edək:

Kod

class easyArray( private static $instance; // Sinfin vəziyyəti. private $Array; // Sinfə ötürülən massiv. private function __construct()( // Konstruktoru yazın. ) private function __clone() ( // Klonlama metodunu yazın. ) ictimai statik funksiya getInstance()( if(null === self::$instance)( self::$instance = new self(); ) qaytar self::$instance; )

Sinifimiz tənhalığa çevrildikdən sonra ona çox vacib bir metod əlavə edəcəyik ki, nəticədə massiv şəxsi dəyişənə yazılacaq:

Kod

ictimai funksiya loadArray($newArray)( if(is_array($newArray))( $this->Array = $newArray; return $this; )else( $error = "Bağışlayın, siz massivi keçmədiniz."; throw yeni İstisna( $xəta); ) )
Koddan görə bilərsiniz ki, biz də metodun girişinə nə ötürüldüyünü yoxlayırıq. Keçirilmiş bir massiv olmadığı təqdirdə, sadəcə xəta ilə bir istisna atacağıq " Təəssüf ki, bir sıra keçmədiniz..". Əgər yoxlama uğurlu olarsa, o zaman əldə olunan massivi şəxsi dəyişənə yazırıq və cari obyekti qaytarırıq.

Yaxşı, indi sinifimizin "__get()" sehrli metodunu ləğv edəcəyik. İstədiyiniz nəticəni əldə etmək üçün bu lazımdır. Belə ki:

Kod

ictimai funksiya __get($index)( if(isset($this->Array[$index]))( if(is_array($this->Array[$index]))( $this->loadArray($this->) Array[$index]); return $this; )else( return $this->Array[$index]; ) )else( $error = "Massivdə açar (".$index.") yoxdur"; yeni İstisna atmaq ($ xəta); ))

Hər şeydən əvvəl, massivdə tələb olunan açarın olub-olmadığını yoxlayırıq, olmadıqda, xəta ilə bir istisna atırıq " "Massivdə çatışmayan açar (".$index.")"". Sonra, tələb olunan açarın massiv olub-olmadığını yoxlayırıq. Əgər belə bir açar üçün massivdə dəyər varsa, biz sadəcə olaraq bu dəyəri qaytarırıq. Əgər o massivdirsə, onu " loadArray($newArray)" və cari obyekti qaytarın ($this).

Və sinfimizə son toxunuş olaraq, sinfimizin işlədiyi cari massivi qaytaracaq bir metod əlavə edək:

Kod

ictimai funksiya arrayReturn()( qaytar $this->Array; )

Beləliklə, sinifimiz hazırdır, lakin dəyərləri əldə etmək üçün indi aşağıdakı kodu istifadə etməliyik:

Echo easyArray::getInstance()->loadArray($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value1; // Hey! Mən dəyər 1

Hətta əvvəlkindən də uzundur. Ancaq bu problem həll edilə bilər və bunun üçün sadə bir funksiyaya ehtiyacımız var:

EasyA($newArray) funksiyası( easyArray::getInstance()->loadArray($newArray); qaytarın)

Yaxşı, indi sonda nə əldə etdiyimizi yoxlayaq:

Kod

array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "Hey! I\"m value1", "value2" => "Hey! Mən \"mvalue2")))))); tələb_bir dəfə("easyArray.php"); require_once("easyArrayFunction.php"); echo easyA($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value1; // Hey! I\"m value1 echo easyA($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value2; // Hey! Mən \"m dəyər2 ?>
Hər şey nəzərdə tutulduğu kimi işləyir.

Bundan əlavə, bu kimi konfiqurasiya faylları bu sinfə ötürülə bilər:

Kod

array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "Hey! I\"m value1 array.php faylından", "value2" => "Hey! Array.php faylından mən \"m value2")))))); ?>


Bunu etmək üçün aşağıdakı tikintidən istifadə etməlisiniz:

Kod

echo easyA(require_once("array.php"))->dimension1->dimension2->dimension3->dimension4->dimension5->value1; // Hey! Mən array.php faylından dəyər1əm

Bəlkə də təkəri mən icad etmişəm, amma düşünürəm ki, bu məqalə həm yeni başlayanlar, həm də digər proqramçılar üçün maraqlı olacaq.

Diqqətinizə görə təşəkkürlər.