Professional Documents
Culture Documents
1
เนื้อหา
อาร์ เรย์ความหมายของ Arrays
อินเด็กซ์ (Index) ของ Arrays
อาร์ เรย์หลายมิติ (Multi-dimension array)
การเรี ยงลำดับในอาร์ เรย์
การจัดการอาร์ เรย์โดยใช้ ฟังก์ชนั
2
อาร์เรย์ความหมายของ Arrays
อาร์ เรย์ คือ ชุดของตัวแปรที่จดั เก็บในหน่วยความจำต่อเนื่องกัน เพื่อเก็บข้ อมูล
ที่อยูใ่ นกลุม่ เดียวกัน
ขนาดของอาร์ เรย์จะขึ ้นกับมิติ (Dimension)
ตัวแปรที่จดั เก็บในอาร์ เรย์เรี ยกว่า Element โดยในแต่ละ Element จะมี
ตัวดัชนี (Index) เพื่อระบุตำแหน่งของข้ อมูลในหน่วยความจำ
3
อินเด็กซ์ (Index) ของ Arrays
อินเด็กซ์ ใช้ สำหรับอ้ างอิงถึงตำแหน่งข้ อมูลในหน่วยความจำ(Element)
โดยแต่ละภาษาจะมีคา่ เริ่ มต้ นของอินเด็กซ์ไม่เท่ากัน สำหรับภาษา PHP จะมี
การกำหนดอินเด็กซ์ 2 แบบ คือ
◦ การกำหนดให้ อินเด็กซ์ของอาร์ เรย์เป็ นตัวเลข โดยอินเด็กซ์ของ PHP จะเริ่ ม
ต้ นที่ 0
◦ การกำหนดให้ อินเด็กซ์เป็ นตัวอักษร
4
การกำหนดอินเด็กซ์ของอาร์เรย์เป็ นตัวเลข
โดยปกติอินเด็กซ์ของอาร์ เรย์ จะเป็ นตัวเลขอยูแ่ ล้ ว ซึง่ ใน PHP อินเด็กซ์จะเริ่มต้ นที่ 0, 1, 2, ... ,
n โดยที่เราสามารถสร้ างอาร์เรย์ได้ จากฟั งก์ชนั array() และ range()
5
การสร้างอาร์เรย์ดว้ ยฟังก์ชนั array()
รู ปแบบ array array([mixed ...] );
6
Example: array()
$province = array("Chiangmai", "Phayao");
10
count()
$student = array("ANT", "BAT", "CAT");
11
การสลับค่าข้อมูลในอาร์เรย์
PHP มีฟังก์ชนั ที่ช่วยในการสลับค่าอื่นๆ นอกเหนือจากการเรี ยงลำดับข้ อมูล
ประกอบด้ วย
◦ ฟั งก์ชนั shuffle()
◦ ฟั งก์ชนั array_reverse()
12
shuffle()
รู ปแบบ void shuffle(array array);
13
shuffle()
$arr = array(10, 1, 15, 66, 45);
shuffle($arr);
for($i=0; $i<count($arr); $i++){
echo $arr[$i] . " ";
} // Result may be
66 10 1 45 15
// Result may be
10 1 15 45 66
ในการใช้ งานฟังก์ ชัน shuffle() จะเป็ นการสุ่ มข้ อมูลแล้ วจัดเรียงใหม่ ซึ่งจะไม่ ซ้ำกัน
14
array_reverse()
ใช้ สำหรับกลับค่าข้ อมูลในอาร์ เรย์ จากข้ างหลังไปข้ างหน้ า และ จากข้ างหน้ าไปข้ างหลัง
15
array_reverse()
$number = range(1, 10);
17
วิธีการสร้างอาร์เรย์ที่มีอินเด็กซ์เป็ นตัวอักษร
การสร้ างอาร์ เรย์โดยกำหนดอินเด็กซ์เป็ นตัวอักษรใช้ ฟังก์ชนั array() เหมือน
กับการสร้ างอาร์ เรย์ที่มีอินเด็กซ์เป็ นตัวเลข ต่างกันที่การกำหนดชื่อของอินเด็กซ์
ที่จะต้ องตามด้ วยเครื่ องหมาย => ตามด้ วยค่าของข้ อมูล ดังแสดงในตัวอย่าง
18
Example: array()
อินเด็กซ์ (key)
ค่ าของข้ อมูล (value)
20
การเข้าถึงข้อมูลภายในอาร์เรย์
การเข้ าถึงข้ อมูลภายในอาร์ เรย์ที่เป็ นตัวอักษร สามารถระบุชื่ออินเด็ก
ซ์ที่ต้องการเข้ าถึง หรื อใช้ คำสัง่ ในการวนรอบ (Loop) ที่จะต้ องใช้ ควบคูก่ บั
ฟั งก์ชนั
◦ each()
◦ list()
21
each()
เป็ นฟั งก์ชนั ที่มีการคืน 2 ค่า คืออินเด็กซ์ และค่าของข้ อมูล และจะ return false
เมื่ออ่านข้ อมูลจนหมดอาร์ เรย์แล้ ว
22
Example: array()
อินเด็กซ์ (key)
ค่ าของข้ อมูล (value)
24
Example: list()
ค่ าของข้ อมูล (value)
อินเด็กซ์ (key)
เป็ นฟั งก์ชนั ที่ใช้ ตรวจสอบข้ อมูลว่ามีข้อมูลที่ต้องการค้ นหา อยูใ่ นอาเรย์หรื อไม่ ถ้ ามีจะ
ส่งกลับค่า true ถ้ าไม่มีจะส่งกลับค่า false
26
Example: list()
ค่ าของข้ อมูล (value)
อินเด็กซ์ (key)
if(in_array(“Chiangmai”,$province){
echo “<p>มีขอ้ มูล</p>”;
}
else{
echo “<p>ไม่มีขอ้ มูล</p>”;
}
มีขอ้ มูล
27
อาร์เรย์หลายมิติ (Multi-dimension array)
ั ้ 2 มิติ จนถึง n มิติ
อาร์ เรย์หลายมิติ เป็ นอาร์ เรย์ซ้อนอาร์ เรย์ มีตงแต่
28
อาร์เรย์หลายมิติที่มีการใช้อินเด็กซ์แบบเป็ นตัวเลข
ID NAME ADDRESS
46330001 ANT CHIANGMAI
ROW
46330002 BAT CHIANGRAI
46330003 CAT PHAYAO
COLUMN
$student = array(array(46330001, "ANT", "CHIANGMAI"),
array(46330002, "BAT", "CHIANGRAI"),
array(46330003, "CAT", "PHAYAO")
); 29
อาร์เรย์หลายมิติที่มีการใช้อินเด็กซ์แบบเป็ นตัวเลข
ID NAME ADDRESS
$student[0][0] $student[0][1] $student[0][2]
ROW
$student[1][0] $student[1][1] $student[1][2]
$student[2][0] $student[2][1] $student[2][2]
COLUMN
$student = array(array(46330001, "ANT", "CHIANGMAI"),
array(46330002, "BAT", "CHIANGRAI"),
array(46330003, "CAT", "PHAYAO")
); 30
อาร์เรย์หลายมิติที่มีการใช้อินเด็กซ์แบบเป็ น
ตัวเลข
$student = array(array(46330001, "ANT", "CHIANGMAI"),
array(46330002, "BAT", "CHIANGRAI"),
array(46330003, "CAT", "PHAYAO")
);
COLUMN
$student = array(array("ID" =>46330001, "NAME" =>"ANT", "ADDRESS" => "CM"),
array("ID" =>46330002, "NAME" =>"BAT", "ADDRESS" => "CR"),
array("ID"=>46330003, "NAME" =>"CAT", "ADDRESS" => "PYO")
);
32
อาร์เรย์หลายมิติที่มีการใช้อินเด็กซ์แบบเป็ นตัวอักษร
$student=array(array("ID"=>46330001, "NAME"=>"ANT", "ADDRESS" => "CM"),
array("ID"=>46330002, "NAME"=>"BAT", "ADDRESS"=> "CR"),
array("ID"=>46330003, "NAME"=>"CAT", "ADDRESS" => "PYO")
);
33
การเรี ยงลำดับในอาร์เรย์ 1 มิติ
การเรี ยงลำดับข้ อมูลในอาร์ เรย์ทำได้ โดยการนำแต่ละ Element
ในอาร์ เรย์มาทำการเปรี ยบเทียบกัน โดยแยกตามประเภทของอินเด็ก
ซ์ของอาร์ เรย์ คือ
◦ การเรี ยงลำดับอาร์ เรย์ที่มีอินเด็กซ์เป็ นตัวเลข
◦ การเรี ยงลำดับอาร์ เรย์ที่มีอินเด็กซ์เป็ นตัวอักษร
34
การเรี ยงลำดับอาร์เรย์ที่มีอินเด็กซ์เป็ นตัวเลข
การเรี ยงลำดับข้ อมูลของอาร์ เรย์ที่มีอินเด็กซ์เป็ นตัวเลข 1 มิติ
ประกอบด้ วย
◦ การเรี ยงลำดับข้ อมูลจากน้ อยไปมาก: ฟั งก์ชนั sort()
◦ การเรี ยงลำดับข้ อมูลจากมากไปน้ อย: ฟั งก์ชนั rsort()
35
การเรี ยงลำดับข้อมูลที่มีอินเด็กซ์เป็ นตัวเลข
จากน้อยไปมาก
รู ปแบบ void sort(array array);
36
Example: sort()
$animal = array("bat", "ant", "cat");
37
Example: sort()
$animal = array("bat", "ant", "cat");
39
การเรี ยงลำดับข้อมูลที่มีอินเด็กซ์เป็ นตัวเลข
จากมากไปน้อย
40
Example: rsort()
$animal = array("bat", "ant", "cat");
43
การเรี ยงลำดับอาร์เรย์ที่มีอินเด็กซ์เป็ นตัว
อักษร
การเรี ยงลำดับข้ อมูลของอาร์ เรย์ที่มีอินเด็กซ์เป็ นตัวอักษร 1 มิติประกอบด้ วย
การเรี ยงลำดับจากน้ อยไปมาก
เรี ยงลำดับตามค่าข้ อมูลที่จดั เก็บ: ฟั งก์ชนั asort()
เรี ยงลำดับตามค่าอินเด็กซ์ของอาร์ เรย์: ฟั งก์ชนั ksort()
การเรี ยงลำดับจากมากไปน้ อย
เรี ยงลำดับตามค่าข้ อมูลที่จดั เก็บ: ฟั งก์ชนั arsort()
เรี ยงลำดับตามค่าอินเด็กซ์ของอาร์ เรย์: ฟั งก์ชนั krsort()
44
การเรี ยงลำดับข้อมูลที่มีอินเด็กซ์เป็ นตัวอักษร
จากค่าข้อมูลที่จดั เก็บ น้อยไปมาก
45
Example: asort()
$money = array("dollar"=>45, "pound"=>80, "euro"=> 50);
47
การเรี ยงลำดับข้อมูลที่มีอินเด็กซ์เป็ นตัวอักษรจากอินเด็กซ์ที่
จัดเก็บ น้อยไปมาก
48
Example: ksort()
$money = array("dollar"=>45, "pound"=>80, "euro"=> 50);
51
Example: arsort()
$money = array("dollar"=>45, "pound"=>80, "euro"=> 50);
53
การเรี ยงลำดับข้อมูลที่มีอินเด็กซ์เป็ นตัวอักษร
จากอินเด็กซ์ที่จดั เก็บ มากไปน้อย
รู ปแบบ void krsort(array array);
54
Example: krsort()
$money = array("dollar"=>45, "pound"=>80, "euro"=> 50);
55
Example: krsort()
$money = array("dollar"=>45, "pound"=>80, "euro"=> 50);