Codecourse

Massivlər

Redaktə edilib:

Adi dəyişənlərdən fərqli olaraq massivlər çoxlu elementlərin saxlanılması üçün nəzərdə tutulmuş xüsusi dəyişənlərdir.

Massivin yaradılması

Massivin yaradılması üçün müxtəlif üsullar mövcuddur. Belə üsullardan biri array() konstruksiyasıdır. Bu konstruksiya parametr qismində bir-birindən vergüllə ayrılan istənilən sayda key => value (indeks => qiymət) cütlüyünü qəbul edir. key sətir və ya tam ədəd ola bilər, value isə istənilən tip ola bilər.

<?php
  $capitals = array(
                   'Azerbaijan' => 'Baku',
                   'Georgia' => 'Tbilisi',
                   'Russia' => 'Moscow',
                   'Ukraine' => 'Kiev'
                   );
                  
  $countries = array(
                     0 => 'Azerbaijan',
                     1 => 'Georgia',
                     2 => 'Russia',
                     3 => 'Ukraine'		
                    );
?>

PHP 5.4 versiyasından etibarən massiv yaratmaq üçün array() əvəzinə [ ] qısa yazılış sintaksisindən istifadə etmək mümkündür.

<?php
  $capitals = [
               'Azerbaijan' => 'Baku',
               'Georgia' => 'Tbilisi',
               'Russia' => 'Moscow',
               'Ukraine' => 'Kiev'
              ];
                  
  $countries = [
                0 => 'Azerbaijan',
                1 => 'Georgia',
                2 => 'Russia',
                3 => 'Ukraine'		
               ];
?>

Massivin yaradılmasının başqa bir üsulu isə kvadrat mötərizə sintaksisindən istifadədir. Bu halda massivin konkret indeksinə qiymət mənimsədilir.

<?php
  $capitals['Azerbaijan'] = 'Baku';
  $capitals['Georgia'] = 'Tbilisi';
  $capitals['Russia'] = 'Moscow';
  $capitals['Ukraine'] = 'Kiev';
               
  $countries[0] = 'Azerbaijan';
  $countries[1] = 'Georgia';
  $countries[2] = 'Russia';
  $countries[3] = 'Ukraine';
?>

Massivin indeksi ədəd olduqda o, indeksli massiv, sətir olduqda isə assosiativ massiv adlanır.

Massivin elementlərinə müraciət

Massivdə saxlanılan hər bir qiymət massivin elementləri adlanır. Massivin elementlərinə müraciət array[key] sintaksisi vasitəsilə həyata keçirilir. İndeksli massivdə indeks göstərilmədikdə sıralama 0-dan başlanır, yəni massivin birinci elementi 0-cı indeksdə yerləşir.

<?php
  $countries = ['Azerbaijan', 'Turkey', 'Georgia', 'Ukraine'];

  echo $countries[0].'<br>'; //Azerbaijan
  echo $countries[1].'<br>'; // Turkey
  echo $countries[2].'<br>'; // Georgia
  echo $countries[3].'<br>'; // Ukraine
?>

Nəticə:

Azerbaijan
Turkey
Georgia
Ukraine

Ancaq massivin ilk elementinin, həmçinin digər elementlərinin indeksini dəyişdirmək olar. Bunun üçün array[] konstruksiyasında elementin qarşısında => operatoru vasitəsilə onun indeksi göstərilir.

<?php
  $countries = [5 => 'Azerbaijan', 6 => 'Turkey', 9=> 'Georgia', 10 => 'Ukraine'];

  echo $countries[5].'<br>'; //Azerbaijan
  echo $countries[6].'<br>'; // Turkey
  echo $countries[9].'<br>'; // Georgia
  echo $countries[10].'<br>'; // Ukraine
?>

Nəticə:

Azerbaijan
Turkey
Georgia
Ukraine

Massivdə mövcud olmayan indeksə müraciət təyin edilməmiş dəyişənə müraciət kimi qəbul edilir: E_NOTICE səhvi yaradılacaq və nəticə NULL olacaq.

Massivin ölçüsünün müəyyənləşdirilməsi

count() funksiyası massivin elementlərinin sayını hesablayır.

<?php
  $dayOfWeek = ['Monday',  'Tuesday',  'Wednesday',  'Thursday',  'Friday',  'Saturday',  'Sunday'];
  echo '$dayOfWeek'.' massivinin elementlərinin sayı: '.count($dayOfWeek);
?>

Nəticə:

$dayOfWeek massivinin elementlərinin sayı: 7

Massivin bütün elementlərinin emalı

Massivlər üzərində həyata keçirilən ən geniş yayılmış əməliyyatlardan biri massivin hər bir elementinə ayrı-ayrılıqda müraciət və onun qiymətinin hansısa bir üsulla emalıdır.

İndeksli massivlərin hər bir elementinə ayrı-ayrılıqda müraciət üçün for və ya while operatorlarından istifadə etmək olar. Assosiativ massivlər üçün foreach operatoru nəzərdə tutulub.

<?php
  $countries = [0 => 'Azerbaijan',
                1 => 'Georgia',
                2 => 'Russia',
                3 => 'Ukraine'
               ];
               
  for($i = 0, $size = count($countries); $i < $size; $i++)
  {
    echo $countries[$i].'<br>';
  }
?>

Nəticə:

Azerbaijan
Georgia
Russia
Ukraine
<?php
  $capitals = ['Azerbaijan' => 'Baku',
              'Georgia' => 'Tbilisi',
              'Russia' => 'Moscow',
              'Ukraine' => 'Kiev'
              ];
              
  foreach($capitals as $key => $value)
  {
    echo $key.': '.$value.'<br>';
  }
?>

Nəticə:

Azerbaijan: Baku
Georgia: Tbilisi
Russia: Moscow
Ukraine: Kiev
446 baxış

Şərhlər: