layer-groupArrays

ภัทรพันธุ์ ปิ่นเกษร 630710473

หากตัวแปรที่จัดเก็บข้อมูลเป็นจำนวนมาก การอ้างถึงตัวแปรทีละตัวก็จะเกิดความยุ่งยาก เราจึงควรจะเรียนรู้วิธีการสร้างตัวแปรเพื่อเอาไว้จัดเก็บชุดข้อมูลในรูปแบบที่เรียกว่าอาร์เรย์ (Array) ซึ่งชุดข้อมูลอาจจะมีลักษณะเป็นลำดับรายการต่อเนื่องกัน ดังนั้นเราสามารถใช้ลูปแบบต่างๆเพื่อดำเนินการกับมันแทนได้และนอกจากนี้ถ้าเราเขียนโปรแกรมมีความซับซ้อนมากขึ้นก็อาจจำเป็นต้องแบ่งขั้นตอนการทำแต่ละอย่างออกเป็นส่วนๆเพื่อจะเรียกแต่ละส่วนขึ้นมาทำงานได้เมื่อเราต้องการ โดยไม่ต้องเขียนโค้ดซ้ำกันอีก ซึ่งส่วนของโปรแกรมแบบนี้เราจะเรียกว่าฟังก์ชัน (Function)

Array คืออะไร ?

อาร์เรย์ (Array) คือการจัดเก็บกลุ่มข้อมูลอย่างใดอย่างหนึ่งไว้ในตัวแปรเดียวกัน ซึ่งหลักการบางส่วนของอาร์เรย์ใน PHP จะคล้ายคลึงกับของ JavaScript แต่อีกบางส่วนก็จะแตกต่างออกไป

ตัวอย่างการเก็บข้อมูลคะแนนสอบทั้ง 5 คน ไว้ในตัวแปรทั้งหมด 5 ตัวแปรคือ $score1, $score2, $score3, $score4, $score5 หลังจากนั้นจะใช้คำสั่ง echo ในการพิมพ์ผลลัพธ์ของคะแนนสอบทั้ง 5 จำนวนออกมา

<?php
	$score1 = 58;
	$score2 = 65;
	$score3 = 74;
	$score4 = 62;
	$score5 = 85;
	
	echo "คะเเนนสอบนักเรียนคนที่ 1 เท่ากับ $score1  <br>";
	echo "คะเเนนสอบนักเรียนคนที่ 2 เท่ากับ $score2  <br>";
	echo "คะเเนนสอบนักเรียนคนที่ 3 เท่ากับ $score3  <br>";
	echo "คะเเนนสอบนักเรียนคนที่ 4 เท่ากับ $score4  <br>";
	echo "คะเเนนสอบนักเรียนคนที่ 5 เท่ากับ $score5  <br>";
?>

output

จากโค้ดด้านบนหมายความว่า

เก็บคะแนนสอบ 58 ไว้ในตัวแปรอาร์เรย์ $score[0] (อาร์เรย์ช่องที่ 0)

เก็บคะแนนสอบ 65 ไว้ในตัวแปรอาร์เรย์ $score[1] (อาร์เรย์ช่องที่ 1)

เก็บคะแนนสอบ 74 ไว้ในตัวแปรอาร์เรย์ $score[2] (อาร์เรย์ช่องที่ 2)

เก็บคะแนนสอบ 62 ไว้ในตัวแปรอาร์เรย์ $score[3] (อาร์เรย์ช่องที่ 3)

เก็บคะแนนสอบ 85 ไว้ในตัวแปรอาร์เรย์ $score[4] (อาร์เรย์ช่องที่ 4)

ประเภทของอาร์เรย์ ?

อาร์เรย์ที่มีดัชนี (Indexed arrays) คือ อาร์เรย์ที่มีดัชนีตัวเลข

อาร์เรย์แบบเชื่อมโยง (Associative arrays) คือ อาร์เรย์ที่มีคีย์ที่มีชื่อ

อาร์เรย์หลายมิติ (Multidimensional arrays) คือ อาร์เรย์ที่มีอาร์เรย์หนึ่งรายการขึ้นไป

การทำงานกับอาร์เรย์ ?

  • การสร้างอาร์เรย์(Create Arrays): อาจใช้รูปแบบอันใดอันหนึ่งคือ

แบบที่ 1

$ชื่ออาร์เรย์ = array ( สมาชิกตัวที่ 1 , สมาชิกตัวที่ 2 , . . . , สมาชิกตัวที่ n ) ;

แบบที่ 2 :

$ชื่ออาร์เรย์ = [ สมาชิกตัวที่ 1 , สมาชิกตัวที่ 2 , . . . , สมาชิกตัวที่ n ] ;

Output

  • การเข้าถึงอาร์เรย์(Access Array): การเข้าถึงและการอ้างถึงอาร์เรย์จำเป็นต้องใช้เลขลำดับในการเข้าถึงแล้วใช้ ลูปในการนับตัวที่ต่อเนื่องจากตัวแรกจนถึงตัวสุดท้าย

Output

  • การเพิ่มรายการอาร์เรย์(Add Array Item): ปกติแล้วถ้าตัวแปรอาร์เรย์ที่ไม่ใช่ key & value เราสามารถนำไปแทรกหรือเพิ่มได้โดยตรงเหมือนกับตัวแปรที่เก็บข้อมูลชนิดสตริงหรือตัวเลข แต่ถ้าเป็นแบบ key & value ต้องใช้ { } ครอบตัวแปรอาร์เรย์ก่อน และต้องไม่มีช่องว่างใน { }

Output

  • การลบรายการอาร์เรย์ (Remove Array Item): ใน PHP นั้นไม่มีฟังก์ชันที่ใช้ในการลบสมาชิกของอาร์เรย์โดยตรง แต่เราสามารถนำฟังก์ชัน unset() ใช้ในการยกเลิกตัวแปรมาใช้ได้ โดยระบุลำดับสมาชิกที่ต้องการยกเลิกเช่น

Output

  • การอัพเดตอาร์เรย์ ( Update Array ): เราสามารถทำการอ้างอิงตำเเหน่ง index ให้กับอาร์เรย์ได้เลยเเละทำการอ้างอิงชื่อให้กับค่าในอาร์เรย์ที่เราจะอ้างถึง

Output

จะเห็นว่า array ช่องที่ 1 เเต่ก่อนเก็บค่า"BMW" ไว้ เมื่อทำการอัพเดตค่า $cars[1] = "Ford"; จะทำให้ array ช่องที่ 1 เปลียนเป็น Ford

  • การเรียงลำดับอาร์เรย์ (Sortng Arrays): การจัดเรียงข้อมูลภายในอาร์เรย์ตามลำดับเเล้วเเต่เราจะออกเเบบ

Output

จาก output จะพบว่าข้อมูลมีการเรียงลำดับจากน้อยไปมาก จากตอนเเรกไม่มีการเรียงเลขเกิดขึ้น

Array Functions

ภาษา PHP ได้จัดเตรียมฟังก์ชันที่เกี่ยวข้องกับตัวแปรไว้ให้ใช้งานกันหลายฟังก์ชัน ซึ่งเราไม่ต้องทำการเขียนโปรแกรมใดๆเลย เพียงแค่รู้จักลักษณะการประมวลผลของฟังก์ชันนั้นๆและเรียกใช้งานได้ถูกต้องตามรุปแบบเท่านั้น

  • ฟังก์ชัน gettype (ตัวแปร) เป็นฟังก์ชันที่ใช้ในการตัวสอบชนิดข้อมูลของตัวแปร ซึ่งอาจจะคืนค่าชนิดของตัวแปรต่างๆ ต่อไปกลับมา

    Integer ชนิดข้อมูลตัวเลขแบบจำนวนเต็ม

    Double ชนิดข้อมูลแบบเลขทศนิยม

    String ชนิดข้อมูลตัวอักษร ข้อความ

    Array ชนิดข้อมูลแบบอาร์เรย์

    Object ชนิดข้อมูลแบบออบเจ็กต์

    Class ชนิดข้อมูลแบบคลาส

    Unknown type ไม่สามารถระบุชนิดข้อมูลตัวแปรได้

ตัวอย่างโปรแกรมต่อไปนี้

Output

  • ฟังก์ชัน empty (ตัวแปร) เป็นฟังก์ชันที่ใช้ในการตรวจสอบตัวแปรว่าเก็บข้อมูลไว้หรือไม่ โดยถ้าตัวแปรเก็บค่าข้อมูลไว้จะคืนค่าเป็นเท็จ ซึ่งค่าเท็จนี้จะเป็นช่องว่าง แต่ถ้าไม่เก็บค่าข้อมูลไว้จะคืนค่าเป็นจริงซึ่งค่าจริงนี้เป็นหมายเลข 1 ไว้

ตัวอย่างโปรแกรมต่อไปนี้

Output

  • ฟังก์ชัน isset (ตัวแปร) ใช้สำหรับตรวจสอบว่ามีตัวแปรตามชื่อที่ระบุไว้หรือไม่ ถ้ามีตัวแปรนั้นจะคืนค่าจริง แต่ถ้าไม่มีจะคืนค่าเท็จ

  • ฟังก์ชัน unset(ตัวแปร) ฟังก์ชันนี้ใช้ทำลายตัวแปรใดและทำการคืนพื้นที่ให้กับหน่วยความจำ ดังนั้นหลังจากใช้ฟังก์ชันนี้แล้วตัวแปรนั้นจะไม่มีตัวแปรนั้นอีก

ตัวอย่างโปรแกรมต่อไปนี้

Output

เปรียบเทียบกับภาษา Java / C / Pytjon ?

ภาษา
การกำหนดขนาด
ชนิดข้อมูล
การขยายตัว
การใช้งานแบบ Associative

PHP

ไม่ต้องกำหนด

ไม่จำกัด

ยืดหยุ่นได้

ใช้ Associative Array ได้

JAVA

ต้องกำหนด

ต้องกำหนดล่วงหน้า

คงที่

ไม่มี

C

ต้องกำหนด

ต้องกำหนดล่วงหน้า

คงที่

ไม่มี

Python

ไม่ต้องกำหนด

ไม่จำกัด

ยืดหยุ่นได้

ใช้ dict (dictionary) ได้

<Reference>

Slide Files:

Clips:

Last updated