เก็บข้อมูลเป็นกลุ่มด้วยอาร์เรย์ บทที่ 8 เก็บข้อมูลเป็นกลุ่มด้วยอาร์เรย์
ชนิดของข้อมูล 1. Scalar Type คือ ตัวแปร 1 ตัวจะเก็บค่าหรือข้อมูลได้ 1 ค่า 2. Compound Type คือ ตัวแปร 1 ตัวจะเก็บค่าหรือข้อมูลได้หลายๆค่า เช่น Array
พื้นฐานเกี่ยวอาร์เรย์ในภาษา PHP สมาชิก (Element) คีย์ (Key) หรือ อินเด็กซ์ (Index) อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ 0 1 2 3 4 5 6 Numerically Indexed อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ sun mon tue wed thu fri sat Associative Indexed
การสร้างอาร์เรย์ – แบบ Numeric แบบที่ 1 $weekdays = array("อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศุกร์", "เสาร์"); อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ 0 1 2 3 4 5 6
การสร้างอาร์เรย์ – แบบ Numeric แบบที่ 2 $weekdays[0] = "อาทิตย์"; $weekdays[1] = "จันทร์"; $weekdays[2] = "อังคาร"; $weekdays[3] = "พุธ"; $weekdays[4] = "พฤหัสบดี"; $weekdays[5] = "ศุกร์"; $weekdays[6] = "เสาร์"; อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ 0 1 2 3 4 5 6
การสร้างอาร์เรย์ – แบบ Numeric แบบที่ 2 อีกแบบ $weekdays[] = "อาทิตย์"; $weekdays[] = "จันทร์"; $weekdays[] = "อังคาร"; $weekdays[] = "พุธ"; $weekdays[] = "พฤหัสบดี"; $weekdays[] = "ศุกร์"; $weekdays[] = "เสาร์"; อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ 0 1 2 3 4 5 6
การสร้างอาร์เรย์ – แบบ Associative แบบที่ 1 $weekdays2 = array("sun" => "อาทิตย์", "mon" => "จันทร์", "tue" => "อังคาร", "wed" => "พุธ", "thu" => "พฤหัสบดี", "fri" => "ศุกร์", "sat" => "เสาร์"); อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ sun mon tue wed thu fri sat
การสร้างอาร์เรย์ – แบบ Associative แบบที่ 2 $weekdays3["sun"] = "อาทิตย์"; $weekdays3["mon"] = "จันทร์"; $weekdays3["tue"] = "อังคาร"; $weekdays3["wed"] = "พุธ"; $weekdays3["thu"] = "พฤหัสบดี"; $weekdays3["fri"] = "ศุกร์"; $weekdays3["sat"] = "เสาร์"; อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ sun mon tue wed thu fri sat
การเข้าถึงสมาชิกของอาร์เรย์ echo $weekdays[1]; อธิบาย access_array.php
การวนลูปเพื่อเข้าถึงสมาชิกอาร์เรย์ foreach (arr_expr as $key => $value) { statement }
ตัวอย่าง การวนลูปเพื่อเข้าถึงสมาชิกอาร์เรย์ $products = array("T0001" => "บล็อคหยอดหมีพูห์", "T0004" => "ตุ๊กตากบสอน ABC", "T0005" => "โต๊ะกิจกรรม", "P0001" => "กระดานลื่นสุขสันต์", "B0001" => "หนังสือมีเสียง: Pooh's Musical Party"); echo '<table border="1" width="100%">'; echo "<tr><th>รหัสสินค้า</th><th>ชื่อสินค้า</th></tr>"; foreach ($products as $key => $value) { echo "<tr><td>{$key}</td><td>{$value}</td></tr>"; } echo "</table>"; loop_through_array1.php
การวนลูปเพื่อเข้าถึงเฉพาะข้อมูลของสมาชิก foreach (arr_expr as $value) { statement }
ตัวอย่าง การวนลูปเพื่อเข้าถึงเฉพาะข้อมูลของสมาชิก $products = array("T0001" => "บล็อคหยอดหมีพูห์", "T0004" => "ตุ๊กตากบสอน ABC", "T0005" => "โต๊ะกิจกรรม", "P0001" => "กระดานลื่นสุขสันต์", "B0001" => "หนังสือมีเสียง: Pooh's Musical Party"); echo '<table border="1" width="100%">'; echo "<tr><th>ลำดับที่</th><th>ชื่อสินค้า</th></tr>"; $i = 1; foreach ($products as $value) { echo "<tr><td>{$i}</td><td>{$value}</td></tr>"; $i++; } echo "</table>"; loop_through_array2.php
การวนลูปเพื่อแก้ไขข้อมูลในอาร์เรย์ $price_list = array("T0001" => 599, "T0004" => 2400, "T0005" => 1690, "P0001" => 9800, "B0001" => 550); echo '<table border="1" width="100%">'; echo "<tr><th>รหัสสินค้า</th><th>ราคาเดิม (บาท)</th></tr>"; foreach ($price_list as $key => $value) { echo "<tr><td>{$key}</td><td>{$value}</td></tr>"; $price_list[$key] = $price_list[$key] * 1.05; } echo "</table><br>"; echo "<tr><th>รหัสสินค้า</th><th>ราคาใหม่ (บาท)</th></tr>"; } echo "</table>"; loop_through_array3.php
อาร์เรย์หลายมิติ (Multi-Dimensional Array) multi_dimensional_array1.php
ฟังก์ชั่นที่ใช้ทำงานกับอาร์เรย์ array_push(อาร์เรย์,ข้อมูลที่จะเพิ่ม) เพิ่มข้อมูลเข้าไปตอนปลายของอาร์เรย์ array_pop(อาร์เรย์) ลบข้อมูลตัวสุดท้ายของอาร์เรย์ array_unshift(อาร์เรย์,ข้อมูลที่จะเพิ่ม) เพิ่มข้อมูลเข้าไปตอนต้นของอาร์เรย์
ฟังก์ชั่นที่ใช้ทำงานกับอาร์เรย์ (ต่อ) array_shift(อาร์เรย์) ลบข้อมูลตัวแรกของอาร์เรย์ ส่งคืนค่าของสมาชิกนั้นกลับมา array_merge (อาร์เรย์ , อาร์เรย์) รวมอาร์เรย์เข้าด้วยกัน แล้วสร้างเป็นอาร์เรยใหม่ เช่น $combined_array=array_merge($fruits,$vegetable);
ฟังก์ชั่นที่ใช้ทำงานกับอาร์เรย์ (ต่อ) array_keys(อาร์เรย์) ให้ค่าเป็น Numberic Array ที่มีข้อมูลเป็นคีย์ของอาร์เรย์ที่กำหนด array_values(อาร์เรย์) ให้ค่าเป็น Numberic Array ที่มีข้อมูลเป็นข้อมูลของอาร์เรย์ที่กำหนด array_function1.php
ฟังก์ชั่นที่ใช้ทำงานกับอาร์เรย์ (ต่อ) sort(อาร์เรย์) เรียงจากน้อยไปหามาก rsort(อาร์เรย์) เรียงจากมากไปหาน้อย โดยทั้งสองอันนี้จะให้ค่าคีย์ในอาร์เรย์ใหม่ เริ่มจาก 0 array_function2.php
ฟังก์ชั่นที่ใช้ทำงานกับอาร์เรย์ (ต่อ) asort(อาร์เรย์) เรียงจากน้อยไปหามาก arsort(อาร์เรย์) เรียงจากมากไปหาน้อย โดยทั้งสองอันนี้จะรักษาค่าคีย์ในอาร์เรย์เดิม
ฟังก์ชั่นที่ใช้ทำงานกับอาร์เรย์ (ต่อ) ksort(อาร์เรย์) เรียงลำดับคีย์ จากน้อยไปหามาก krsort(อาร์เรย์) เรียงลำดับคีย์ จากมากไปหาน้อย โดยทั้งสองอันนี้จะรักษาค่าคีย์ในอาร์เรย์เดิม
งาน 1. lab08_1.php เขียนโปรแกรมแสดงชื่อจริงของเพื่อน จำนวน 5 คน โดยป้อนชื่อเล่น และให้โปรแกรมบอกว่าชื่อจริงอะไร (array) หลักการ เก็บชื่อจริง(ให้เป็นค่า)และชื่อเล่น(ให้เป็นคีย์)
งาน (ต่อ) 2. lab08_2.php จากข้อ lab07_1 จงแก้จากใช้ if มาเป็น array แทน