2010/01/25

PHP: Олон хэмжээст массивын хэрэглээ

Өмнөх бичлэг дээр нэг хэмжээс массивийг хэрхэн хэрэглэх талаар нэлээд дэлгэрэнгүй бичсэн. Харин 2 ба түүнээс дээш тооны индэксээр хандах олон хэмжээс массивийн талаар энд дурдъя.

C/C++, Java гэх мэт өргөн тархсан хэн бүхний анхлан сурч хэрэглэж ирсэн програмчллын хэлүүдэд массивий индексээ бүхэл тоогоор авдаг, тэр зарчмаараа хэрэглэхэд асуудал гарахгүй учир тэр талаар яриаг орхилоо. Харин PHP хэлний гол онцлог болох "уян хатан" байдлыг илэрхийлсэн хэдэн жишээ кодыг тайлбарлаад массивтай холбоотой өргөн хэрэглэгдэх стандарт функцуудыг тайлбарлая.

Жишээ нь манай мэргэжлийхэн үздэг хичээлүүдийг суурь хичээл буюу fundamental, мэргэжлийн хичээл буюу professional, гэж ангилаад дотор нь хичээлийн кодоор ялгаад хандах, өөрөөр хэлбэл 2 түлхүүр үг буюу индексээр хандах 2 хэмжээст массивыг үүсгэж үзье.
<?php
        $lessons = array(
                'professional' => array('CS204' => 'Data structures',
                                        'SE310' => 'Wireless programmin',
                                        'CS207' => 'Operating system theory'),
                'fundamental' =>  array('MT201' => 'Discrete Math',
                                        'EL210' => 'English 2'));
        echo $lessons['professional']['CS207']."<br><br>";
        foreach($lessons as $lkey => $type){
                echo "$lkey lessons:<br>";
                while(list($code, $name) = each($type)){
                        echo "$code $name<br>";
                }
                echo "<br>";
        }      
?>
Үр дүн нь:

Operating system theory

professional lessons:
CS204 Data structures
SE310 Wireless programmin
CS207 Operating system theory

fundamental lessons:
MT201 Discrete Math
EL210 English 2

Дээрхи кодыг уншаад, туршиж үзээд жаахан анализ хийгээд энгийнээр тайлбарлавал "PHP хэлний олон хэмжээст массив гэдэг нь элемэнт нь массив байж болох нэг хэмжээс массив юм" гэсэн рекурсив ч гэмээр дүгнэлт гарч ирнэ. Үүний баталгаа болгоод нэг код туршиж үзье.
<?php
        $a = array('Hello World!',
                   array('PHP','Programming', 'Language!'),
                   'Welcome!');
        echo $a[0]."<br>";
        for($i = 0; $i < 3; $i++){
                echo $a[1][$i]." ";
        }
        echo "<br>$a[2]";
?>
Үр дүн нь:

Hello World!
PHP Programming Language!
Welcome!


Олон хэмжээст массивыг ашиглахад хэрэглэгддэг хүчирхэг функцүүдийг нэг нь массивийн индекстэй ижил нэртэй хувьсагчид массивиын элемэнтийн утгыг оноодог extract функц юм. Жишээ код:
<?php
        $pro = array('CS204' => 'Data structures',
                     'SE310' => 'Wireless programmin');
        extract($pro);
        echo "$CS204<br>$SE310";
?>
Үр дүн:

Data structures
Wireless programmin

Өргөн хэрэглэж болох функцууд:

Array_push( array_name, element1, element2.. elements) - өгөгдсөн массивт өгөгдсөн элемэнтүүдийг дарааллаар нь нэмэх функц

Array_pop( array_name) - өгөгдсөн массивийн хамгийн сүүлчийн элемэнтийн утгыг буцааж, устгах үйлдэл.

Array_unshift( array_name,elements) - Массивын эхэнд өгөгдсөн элэмэнтүүдийг нэмэх функц

Array_shift( array) - массивын хамгийн эхний элемэнтийн утгыг буцааж устгах үйлдэл

Array_merge( array1,array2) - өгөгдсөн 2 массивыг нэгтгэн залгах үйлдэл

Array_keys( array) - өгөдсөн массивын индексүүдийг нэг массив болгон массив төрлийн утга буцаах функц

Энэ мэт олон функцууд PHP хэлний маань санд байгаа, PHP маань өөрөө агуу баялаг хэл учир тэр бүгдийг тайлбарлаж бичвэл цаг их орох тул уншигч эрхэм та бие даан тэдгээрийг судалбал зохино.

1 comment:

Миний бичсэн бичлэг танд өчүүхэн ч болтугай хэрэг болсон бол сэтгэгдлээ бичиж үлдээхийг хүсье. Баярлалаа :)