Doll

สิ่งที่ท่านจะได้ทราบในบทความนี้

  • Array คืออะไร
  • ประโยชน์ของ Array
  • ทำไมโลกนี้จึงต้องมี Array
  • วิธีสร้าง Array
  • Array หลายมิติ

Array คืออะไร

Array หรือ อะเรย์ ในภาษาไทยเป็นตัวแปรประเภทหนึ่ง ที่สามารถเก็บค่าหลายๆค่าไว้ในตัวแปรชื่อเดียวกัน โดยอาศัยการเข้าถึงค่าแต่ละตัวด้วย เลขดัชนีหรือชื่อย่อยประจำตัวภายใน Array

ตอนสมัยที่เรียนใหม่ๆ Array เป็นไม้เบื่อไม้เมามาก ไม่ค่อยจะเข้าใจหลักการของมัน แต่หลังจากจบออกมาเป็นโปรแกรมเมอร์ จึงทราบว่ามันเป็นตัวแปรประเภทที่ขาดไม่ได้ในการเขียนโปรแกรม ถ้าท่านยังคิดภาพของ Array ไม่ค่อยออก ให้คิดเสียว่ามันเป็นแค่ตัวแปรที่เอามาต่อๆติดกัน แล้วมีตัวเลขเป็นตัวกำกับเพื่อแยกว่ามันเป็นตัวแปรตัวไหน เท่านั้นเอง

ประโยชน์ของ Array

  • ประหยัดชื่อตัวแปร
  • มีฟังก์ชั่นที่ใช้สำหรับจัดการ Array โดยเฉพาะ จำนวนมาก ไม่ว่าจะเป็นการเรียงค่าใหม่ หรืออื่นๆอีกเป็นปี้บ
  • จัดการง่าย

ทำไมโลกนี้จึงต้องมี Array

ท่านลองนึกถึงภาพว่า เราต้องการเก็บข้อมูลของนักเรียนในห้องจำนวน 50 คน โดยเก็บรายละเอียดทุกอย่างเกี่ยวกับนักเรียนแต่ละคน ถ้าไม่มีอะเรย์เราอาจะต้องหาศัพท์มาตั้งชื่อตัวแปร เพื่อเก็บข้อมูล หมดพจนานุกรม หรือไม่งั้นก็ต้องใช้ตัวแปรทุเรศๆ เช่น student_1, height_1 เป็นต้น

แต่ถ้าใช้ตัวแปรอะเรย์ เราใช้ชื่อตัวแปรเพียงแค่ตัวเดียวก็พอ students ลองดูตัวอย่าง

$students = array(
    0=>array('height'=>160,'age'=>18,'grade'=>'A'),
    1=>array('height'=>190,'age'=>20,'grade'=>'E'),
    2=>array('height'=>150,'age'=>19,'grade'=>'D'),    
);

Index Array และ Associative Array

Array ในภาษา PHP นั้นมีอยู่ 2 แบบ คือ

  • Index Array อะเรย์ที่ใช้ตัวเลขกำกับ และใช้ตัวเลขเพื่อการเข้าถึงข้อมูลภายใน
$student = array(0=>15,1=>20,2=>50);
// หรือแบบนี้ก็ได้
$student = array(15, 20, 50);

เมื่อต้องการเข้าถึงค่าภายในอะเรย์

echo $student[1] ; //20
  • Associative Array อะเรย์ที่ใช้ตัวหนังสือกำกับ และเข้าถึงข้อมูลภายใน
$students = array(
    'name'=>'Watcharamet',
    'age'=>38,
    'height'=>180
);

เมื่อต้องการเข้าถึงค่าภายในอะเรย์

echo $student["name"] ; //Watcharamet

Array หลายมิติ

อะเรย์นอกจากจะเก็บค่า ตัวเลข, ตัวหนังสือ, วันที่ ทั่วๆไปแล้ว ยังสามารถเก็บ อะเรย์ ไว้ภายในตัวเองได้ด้วย เป็นอะเรย์ซ้อนอะเรย์ เรียกว่าอะเรย์หลายมิติ

$animals = array(
   "cat"=>array("name"=>"dang", "legs"=>4, "seed"=>"fish"),
   "duck"=>array("name"=>"pod", "legs"=>2, "seed"=>"shell"),
   "dog"=>array("name"=>"tongdang", "legs"=>4, "seed"=>"rice"),    
);

เมื่อต้องการเข้าถึงตัวแปรอะเรย์แบบหลายมิติ สามารถทำได้ดังนี้

echo $animals["dog"]["legs"] ; // 4