PHP Դասեր - Դաս 10 - Զանգվածներ
Մինչ այս դասը մենք դիտարկել ենք միայն թվային և տողային փոփոխականներ, իսկ այս դասում կծանոթանանք զանգվածներին։ Զանգվածները կարող են պարունակել ինչպես թվային, այնպես էլ տողային փոփոխականներ։ Այդ իսկ պատճառով դրանք անվանվում են զանգվածներ։
Զանգվածի էությունն այն է, որ գոյություն ունեն բազմաթիվ բանալիներ և արժեքներ։ Յուրաքանչյուր բանալուն համապատասխանում է մեկ արժեք։ Օրինակ՝ եթե ունենք բանալիներ 1, 2, 3, ապա արժեքները կարող են լինել՝ 4, 'Hello World', true։ Զանգվածները գրանցվում են այնպես, ինչպես փոփոխականները՝ դոլար նշանով՝
$tree = array();
Պարզապես զանգված ստեղծելու համար օգտագործում ենք array() ֆունկցիան։
Իրականում՝ ինչպես փոփոխականները, այնպես էլ զանգվածները պարտադիր չէ նախապես հայտարարել։ Բայց այլ մարդկանց կոդը հասկանալու համար ավելի լավ է տեսնել, թե որտեղից է փոփոխականը գալիս և ինչ տիպի է այն։
Հիմա հայտարարենք վերը նշված զանգվածը՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 3 => true, ); ?>
Ուշադրություն դարձրեք շարահյուսությանը։ Սկզբում ամեն ինչ ընթանում է ինչպես փոփոխականի դեպքում՝ նշանակման միջոցով։ Հետո գալիս է array բանալի բառը՝ նշելով, որ փոփոխականը զանգված է։ Կլոր փակագծերում տեղադրվում են բանալի/արժեք զույգեր։
Դրանք գրվում են այսպես՝
array( բանալի1 => արժեք1, բանալի2 => արժեք2, );
Սկզբում գալիս է բանալին, ապա հավասարության նշանը և անմիջապես > նշանը (առանց բացատի), հետո արժեքը։ Յուրաքանչյուր զույգի վերջում գրվում է ստորակետ։
Զանգվածը կարելի է գրել նաև մեկ տողում՝
<?php $tree = array(1 => 4, 2 => 'Hello World', 3 => true,); ?>
Այս դեպքում $tree փոփոխականը նույնն է։ Պարզապես բազմատող տեսքը ավելի ընթեռնելի է։ Գրառման ոճի մասին ավելի ուշ։
Զանգվածը էկրանին տպելու համար օգտագործում ենք print_r() ֆունկցիան։ Ի տարբերություն print ֆունկցիայի՝ սա օգտագործում է փակագծեր՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 3 => true, ); print_r($tree); ?>
Արդյունքը կլինի՝
Array ( [1] => 4 [2] => Hello World [3] => 1 )
Եթե ավելացնենք <pre> թեգը, տեսքը կդառնա ավելի ընթեռնելի՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 3 => true, ); print '<pre>'; print_r($tree); print '</pre>'; ?>
Արդյունքը՝
Array ( 1 => 4, 2 => 'Hello World', 3 => true, )
Հիմա, երբ արդեն սովորեցինք զանգվածներ ստեղծել, փորձենք զանգվածից արժեքներ վերցնել՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 3 => true, ); print $tree[2]; ?>
Այսպիսով արտածեցինք զանգվածի երկրորդ տարրը՝ 'Hello World'։ Զանգվածից արժեք ստանալու համար պետք է օգտագործել փոփոխականի անունը և ապա՝ բանալին՝ քառակուսի փակագծերում։ Կարող ենք օգտագործել նաև $tree[1], $tree[3]։
Եկեք ավելացնենք տարր զանգվածին՝ առանց բանալի նշելու՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 3 => true, ); $tree[] = 'Եվս մեկ տարր'; print '<pre>'; print_r($tree); print '</pre>'; ?>
Արդյունքը՝
Array ( [1] => 4 [2] => Hello World [3] => 1 [4] => Եվս մեկ տարր )
Տեսնում եք՝ առանց բանալի նշելու PHP-ն ավտոմատ ընտրեց հաջորդ թիվը։ Կարող ենք նաև որոշել կոնկրետ բանալի՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 3 => true, ); $tree[6] = 'Այլ տարր'; print '<pre>'; print_r($tree); print '</pre>'; ?>
Այս դեպքում բանալիները կլինեն 1,2,3,6։ Իսկ 4 և 5-ը չեն գոյություն ունենա։ Այսինքն՝ եթե ունենք բանալիներ 103 և 105, դա չի նշանակում, որ 104-ն էլ կա։ Կարող ենք ստուգել՝ արդյոք բանալին կա՝
if(empty($tree[104])){ }
Եթե օգտագործում ենք արդեն գոյություն ունեցող բանալի, արժեքը կփոխարինվի՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 3 => true, ); $tree[3] = 'Այլ տարր'; print '<pre>'; print_r($tree); print '</pre>'; ?>
Նոր տարր չի ավելացվի, բայց 3-րդի արժեքը կփոխվի։
Կարևոր է նաև նշել, որ զանգվածի բանալին կարող է լինել նաև տեքստ՝
<?php $tree = array( 1 => 4, 2 => 'Hello World', 'key3' => true, ); print '<pre>'; print_r($tree); print '</pre>'; ?>
Այս դեպքում բանալիները պետք է գրվեն չակերտների մեջ։ Օրինակ՝
print $tree['key3'];
Կարծում եմ՝ զանգվածների հիմունքներն արդեն հասկանալի են։ Հաջորդը՝ բազմաչափ զանգվածներ։