4.3 ฟังก์ชันเกี่ยวกับอาเรย์ (Array)
อาเรย์ (array) เป็นชุดของค่าตัวแปรที่เก็บข้อมูลอย่างใดอย่างหนึ่ง ที่เกี่ยวข้องกัน เช่น รายชื่อ เดือนทั้ง 12 เดือน หรือ รายชื่อจังหวัดในประเทศไทย เป็นต้น ซึ่งข้อมูลมีหลายข้อมูลอยู่ในกลุ่มเดียวกัน สามารถจัดเก็บให้อยู่ในรูปแบบอาเรย์ได้ โดยใช้ตัวแปรเพียงแค่หนึ่งตัว ซึ่งสามารถเรียกใช้ผ่านหมายเลข ลําดับ (index) ที่ใช้สําหรับอ้างอิงตําแหน่งของข้อมูลแต่ละตัว ซึ่งข้อมูลย่อยๆ ภายในอาเรย์เรียกว่า สมาชิก หรือ อิลิเมนต์ (element) เช่น
4.3.1 การสร้างอาเรย์แบบพื้นฐาน
การสร้างอาเรย์สามารถสร้างได้โดยใช้ฟังก์ชันดังนี้ (w3schools.com, 2016)
4.3.1.1 array()
array() จากตัวอย่างคําสั่งข้างต้นจะเห็นว่าเราสามารถประกาศตัวแปรให้อยู่ในรูปแบบของอาเรย์ได้ โดยการใช้ฟังก์ชัน array แล้วระบุสมาชิกภายในอาเรย์ทั้งหมดที่ต้องการ ดังนี้
ซึ่งการอ้างอิงตําแหน่งจะเริ่มต้นที่หมายเลข 0 เรียงลําดับไปเรื่อยจนถึงข้อมูลสุดท้าย ซึ่งสามารถกําหนดค่าเพิ่มเติม หรือ ปรับเปลี่ยนค่าตัวแปรของอาเรย์ แบบเฉพาะเจาะจงได้โดยการระบุ ตําแหน่งที่ต้องการจากนั้นกําหนดค่าใหม่ หรือเปลี่ยนเป็นค่าที่ถูกต้องตามความต้องการ
4.3.1.2 range()
range() ในกรณีที่ทราบสมาชิกที่ต้องการที่เป็นตัวเลขแบบมีลําดับ และจํานวน ที่ชัดเจน เช่น ต้องการค่าอาเรย์ที่เก็บค่า 1-10 หรือ A-Z ซึ่งสามารถสร้างอาเรย์ได้โดยใช้ฟังก์ชัน range ซึ่งมี รูปแบบการใช้งานดังนี้ (บัญชา ปะสีละเตสัง, 2557)
ตัวอย่างการใช้งาน
4.3.2 การสร้างอาเรย์แบบ Key/Value
การสร้างอาเรย์แบบ Key/Value หรือ Associative Arrays เป็นอาเรย์ที่ต้องการใช้ค่าคีย์ในการ
อ้างอิงตําแหน่งของข้อมูลนั้น ซึ่งเป็นตัวเลขหรือตัวอักษรก็ได้ ประกอบไปด้วยสองส่วนด้วยกันคือ ค่าคีย์ (key) และ ค่าของข้อมูลของสมาชิกนั้น (value) การใช้งานมีวิธีการดังนี้
ตัวอย่างเช่น การกําหนดอายุให้กับอาเรย์ที่ใช้ชื่อในการอ้างอิงตําแหน่งของข้อมูล
หากต้องการเรียกใช้งานสามารถอ้างอิงผ่านคีย์ที่ต้องการได้ เช่น
4.3.3 การนับจํานวนสมาชิกในอาเรย์
ฟังก์ชันสําหรับการนับจํานวนสมาชิกภายในอาเรย์มีดังนี้
4.3.3.1 count()
count() เป็นฟังก์ชันสําหรับการนับจํานวนสมาชิกที่อยู่ในอาเรย์ ซึ่งมีรูปแบบการทํางาน เหมือนกันกับฟังก์ชัน sizeof ยกตัวอย่างการนับจํานวนสมาชิก ดังนี้
4.3.3.2 array_count_values()
array_count_values() เป็นฟังก์ชันสําหรับนับจํานวนสมาชิก ซึ่งค่าที่ได้จะแสดงค่า ตัวเลขจํานวนสมาชิกว่ามีอยู่เท่าไร โดยตําแหน่งอ้างอิงจะเป็นค่าของสมาชิกที่ต้องการ ดังตัวอย่าง
4.3.4 การวนรอบการแสดงผลสมาชิกในอาเรย์พื้นฐาน
การวนรอบการแสดงผลสมาชิกภายในอาเรย์สามารถใช้การวนรอบโดยใช้ฟังก์ชัน for หรือ foreach ซึ่งสามารถใช้คําสั่งวนรอบโดยใช้การนับจํานวนสมาชิกเข้าร่วมกับฟังก์ชัน for ด้วย ซึ่งจะวนรอบไปตามจํานวนสมาชิกในอาเรย์ที่ต้องการ ซึ่งแต่ละรอบจะดําเนินการตามที่ผู้พัฒนาต้องการ เช่น การแสดงผล การประมวลผล หรือการนับค่าเพิ่มเติม เป็นต้น
ตัวอย่างโปรแกรมที่ 4.1 โปรแกรมแสดงผลการวนรอบจํานวนสมาชิกในอาเรย์
เขียนคําสั่งโปรแกรมภาษาพีเอชพี ตามตัวอย่าง แล้วบันทึกไฟล์ชื่อ function_array1.php
Source Code:
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 เปิดแท็กภาษา PHP
บรรทัดที่ 2 ประกาศตัวแปรอาเรย์ $cars สําหรับเก็บข้อมูลประเภท String ("Honda", "Toyoto", "Mazda")
บรรทัดที่ 3 ประกาศตัวแปรอาเรย์ $num ให้ใช้ฟังก์ชันสําหรับการนับจํานวนสมาชิก ที่อยู่ในอาเรย์ $cars
บรรทัดที่ 4 – 7 วนรอบการแสดงผลสมาชิกภายในอาเรย์โดยใช้ฟังก์ชัน for
บรรทัดที่ 5 แสดงผลข้อมูลที่เก็บในตัวแปรอาเรย์ $cars
บรรทัดที่ 8 ปิดแท็กภาษา PHP
4.3.5 การวนรอบการแสดงผลสมาชิกในอาเรย์แบบ Key/Value
อาเรย์แบบ Key/Value หรือ Associative การวนรอบการแสดงผลจะใช้คําสั่ง foreach ในการวนรอบตามค่าคีย์ของอาเรย์นั้นๆ ตัวอย่างการวนรอบ
ตัวอย่างโปรแกรมที่ 4.2 โปรแกรมแสดงผลอาเรย์แบบ Key/Value
เขียนคำสั่งโปรแกรมภาษาพีเอชพี ตามตัวอย่าง แล้วบันทึกไฟล์ชื่อ function_array2.php
Source Code:
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 เปิดแท็กภาษา PHP
บรรทัดที่ 2 ประกาศตัวแปรอาเรย์ $age สำหรับเก็บข้อมูล
บรรทัดที่ 3 – 6 วนรอบการแสดงผลสมาชิกภายในอาเรย์แบบ Key/Value โดยใช้ คำสั่ง foreach ในการวนรอบตามค่าคีย์ของอาเรย์นั้นๆ
บรรทัดที่ 4 แสดงผลตำแหน่ง และค่าที่เก็บไว้ในตัวแปรอาเรย์
บรรทัดที่ 7 ปิดแท็กภาษา PHP
4.3.6 การเพิ่มสมาชิกในอาเรย์
ฟังก์ชันสําหรับเพิ่มจํานวนสมาชิกในอาเรย์ มีดังนี้ (บัญชา ปะสีละเตสัง, 2557)
4.3.6.1 array_push()
array_push() เป็นการเพิ่มจํานวนสมาชิกในอาเรย์ ซึ่งสามารถเพิ่มจํานวนก็ได้ หรือ อาจจะเพิ่มค่าของอาเรย์จากอาเรย์อื่น
4.3.6.2 array_pad()
array_pad() เป็นการเพิ่มค่าให้กับอาเรย์ เพื่อให้มีจํานวนสมาชิกอาเรย์ตามที่ต้องการ ซึ่งสามารถเลือกค่าที่เพิ่มเข้าไปในอาเรย์ได้ตามความต้องการ เช่น ต้องการเพิ่มค่า 0 ให้กับอาเรย์เพื่อให้มีจํานวนสมาชิกครบ 10 จํานวน
4.3.7 การตรวจสอบข้อมูลในอาเรย์
ฟังก์ชันสําหรับการตรวจสอบข้อมูลในอาเรย์ มีดังนี้
4.3.7.1 in_array()
in_array() เป็นการตรวจสอบว่ามีค่านี้อยู่ในอาเรย์หรือไม่ ซึ่งหากมีค่าตามที่ต้องการ ฟังก์ชันจะคืนค่าเป็นจริง (true) หากไม่มีฟังก์ชันจะคืนค่าเป็นเท็จ (false) ดังตัวอย่าง
4.3.7.2 array_search()
array_search() เป็นการค้นหาว่ามีค่าที่ต้องการอยู่ในอาเรย์หรือไม่ ซึ่งค่าที่ได้จะเป็น ลําดับที่อ้างอิงของสมาชิกที่ค้นหา แต่หากไม่เจอฟังก์ชันจะคืนค่าเป็น false ดังตัวอย่าง
4.3.7.3 array_key_exits()
array_key_exits() เป็นการค้นหาอาเรย์ว่ามีคีย์ที่ต้องการหรือไม่ โดยค่าที่ได้จากฟังก์ชัน หากเจอคีย์ที่ค้นหาจะคืนค่า true หากไม่เจอจะคืนค่า false ดังตัวอย่าง
4.3.8 การเรียงลําดับข้อมูลในอาเรย์
ฟังก์ชันสําหรับการเรียงลําดับข้อมูลในอาเรย์ มีดังนี้ (w3schools.com, 2016)
4.3.8.1 sort()
sort() เป็นการเรียงลําดับค่าของสมาชิกในอาเรย์ ซึ่งจะเรียงลําดับจากน้อยไปหามาก ใช้ได้ทั้งค่าสมาชิกที่เป็นตัวเลขและตัวอักษร
4.3.8.2 rsort()
rsort() เป็นการเรียงลําดับค่าสมาชิกในอาเรย์ ซึ่งจะเรียงลําดับจากมากไปหาน้อย
4.3.8.3 assort()
assort() เป็นการเรียงลําดับค่าสมาชิกในอาเรย์แบบ key/value โดยจะเรียงลําดับค่า ของสมาชิกจากน้อยไปหามาก
4.3.8.4 ksort()
ksort() เป็นการเรียงลําดับคีย์อ้างอิงในอาเรย์แบบ key/value โดยจะเรียงลําดับคีย์ อ้างอิงจากน้อยไปหามาก
4.3.8.5 arsort()
arsort() เป็นการเรียงลําดับค่าสมาชิกในอาเรย์แบบ key/value โดยจะเรียงลําดับค่า ของสมาชิกจากมากไปหาน้อย
4.3.8.6 krsort()
krsort() เป็นการเรียงลําดับคีย์อ้างอิงในอาเรย์แบบ Key/value โดยจะเรียงลําดับคีย์อ้างอิงจากมากไปหาน้อย
4.3.9 ฟังก์ชันอื่นๆ เกี่ยวกับอาเรย์
ฟังก์ชันอื่นๆ ที่น่าสนใจเกี่ยวกับอาเรย์ มีดังนี้
4.3.9.1 array_sum()
array_sum() เป็นฟังก์ชันสําหรับหาผลรวมของสมาชิกทุกตัวในอาเรย์
4.3.9.2 array_combine()
array_combine() เป็นฟังก์ชันสําหรับรวมสองอาเรย์เข้าด้วยกันในรูปแบบ key/value โดยอาเรย์แรกจะเป็นคีย์ และอาเรย์ที่สองจะเป็นค่าของคีย์ในอาเรย์นั้น
4.3.9.3 array_intersect()
array_intersect() เป็นการเปรียบเทียบค่าของอาเรย์สองอาเรย์ขึ้นไป เพื่อดูว่ามีค่าของ สมาชิกค่าไหนบ้างที่ซ้ำกัน
4.3.9.4 array_diff()
array_diff() เป็นการเปรียบเทียบค่าของอาเรย์สองอาเรย์ขึ้นไป เพื่อดูว่าค่าสมาชิก ใดบ้างที่มีเฉพาะในอาเรย์แรก และไม่มีในอาเรย์อื่น
4.3.9.5 array_keys()
array_keys() เป็นการอ่านคีย์ของอาเรย์ แล้วดึงออกมาเป็นสมาชิกในอาเรย์ใหม่
4.3.9.6 array_values()
array_values() เป็นการอ่านค่าสมาชิก แล้วดึงมาเป็นสมาชิกใหม่ในอาเรย์