ข้ามไปที่เนื้อหาหลัก

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



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

       ข้อมูลอาร์เรย์ เป็นรูปแบบข้อมูลที่มีความสำคัญมาก กับงานเขียนโปรแกรม จะใช้เก็บข้อมูลที่มีหลายมิติ หรือจะให้เข้าใจง่ายๆ ให้มองภาพของตาราง ที่มีหลายๆคอลัมน์ เช่น นักเรียน 1 คนมีข้อมูล ชื่อ นามสกุล ชั้นเรียน เกรดเฉลี่ย ที่อยู่ และข้อมูลอีกหลายอย่าง ดังนั้นการจะประกาศตัวแปรตามจำนวนข้อมูลทุกตัวนั้น จะเสียเวลาและเปลืองตัวแปรอย่างมาก 

       ดังนั้น การประกาศตัวแปรให้เป็นแบบ Array จึงช่วยให้งานเขียนโปรแกรมนั้นดูเป็นระเบียบเรียบร้อย และยังเรียกใช้งานได้สะดวก อย่างเช่นการดึงข้อมูลนักเรียนจากฐานข้อมูล เรามักจะพักข้อมูลไว้ในตัวแปรซึ่งจะเป็นแบบ Array เสมอ




ตัวอย่างการสร้างข้อมูลแบบ Array ในภาษา PHP 


<?php
$student['computer'] = array(
  array('name'=>'นางสาวณริณี ศักดิ์ดา', 'grade'=>'3.01', 'tel'=>'081-234-5678'),
  array('name'=>'นายณรงศักด์ อ่อนไหว', 'grade'=>'2.79', 'tel'=>'081-234-5679'),
  array('name'=>'นายทรงพล ยืนยง', 'grade'=>'2.56', 'tel'=>'081-234-5680'),
);
?>

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

<?php
echo '<table border="1" cellpadding="3" cellspacing="0">';
echo '<tr style="background-color: #aaaaaa;">';
echo '<th>ชื่อ-นามสกุล</th><th>เกรดเฉลี่ย</th><th>เบอร์โทรศัพท์</th>';
echo '</tr>';
foreach($student['computer'] as $arr){
    echo '<tr>';
    echo '<td>'.$arr['name'].'</td>';
    echo '<td>'.$arr['grade'].'</td>';
    echo '<td>'.$arr['tel'].'</td>';
    echo '</tr>';
}
echo '</table>';

?>

ได้ผลลัพธ์ ดังนี้



ตัวอย่างที่ 2
<?php
$status1 = 'new';
$status2 = 'read';
$status3 = 'reply';

$statusText = array('new' => 'ข้อความใหม่', 'read' => 'อ่านแล้ว', 'reply' => 'ตอบกลับ');

echo 'ข้อความที่ 1 สถานะ = '. $status1 . ' >> '. $statusText[$status1];
echo 'ข้อความที่ 2 สถานะ = '. $status2 . ' >> '. $statusText[$status2];
echo 'ข้อความที่ 3 สถานะ = '. $status3 . ' >> '. $statusText[$status3];
<br>

?>

ผลลัพธ์ที่ได้ จะเป็นการเช็กสถานะข้อความ


ลองเปรียบเทียบตัวแปรปกติ กับตัวแปรอาร์เรย์กับกล่องเก็บของใบหนึ่ง


ถ้ากำหนดให้กล่อง 1 ใบ บรรจุของได้เพียงชิ้นเดียว ตัวแปร $box ก็จะเก็บได้แค่หนังสือเล่มเดียว หรือของเล่นชิ้นเดียว หรืออะไรก็แล้วแต่ได้เพียงชิ้นเดียวเท่านั้น ไม่สามารถเก็บของที่เกลื่อนกลาดดาษเดื่อนบนพื้นห้องที่แสนรกรุงรังได้หมด
 
วิธีการแก้ปัญหานี้สามารถทำได้โดยการนำกล่องหลายๆกล่องมาวางเรียงกัน ก็จะสามารถเก็บของชิ้นที่เหลือได้ทั้งหมด เหลือของกี่ชิ้นก็นำกล่องมาเพิ่มตามจำนวน เช่น
<?php
$box[0] = “Book”;
$box[1] = “Clock”;
$box[2] = “Gundum”;
$box[3] = “Pen”;
$box[4] = “Cap”;
?>
ประกาศตัวแปรอาร์เรย์แบบสั้นๆ ได้ดังนี้
<?php
$box = array(“Book”, “Clock”, “Gundum”, “Pen”, “Cap”);
?>
สำหรับตัวแปร Array นั้นเราไม่สามารถแสดงข้อมูลออกมาด้วยคำสั่ง echo แบบปกติได้ เพราะข้อมูลถูกเก็บไว้ในตำแหน่งต่างๆ ที่ไม่สามารถนำมาแสดงได้ ก็ต้องใช้การวนลูปเลือกมาแสดงทีละลำดับโดยเริ่มจากกล่องแรกที่จะอยู่ในตำแหน่ง 0 เสมอ ในที่นี้ก็คือ Book นั่นเอง สำหรับตัวอย่างการวนแสดงผลทีละรอบนั้น ดูได้จากตัวอย่าง PHP กับการทำซ้ำ



"PHP ไม่ได้สร้างสุดยอดโปรแกรม แต่ PHP ช่วยให้งานคุณง่ายขึ้นต่างหาก"

PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม

สนใจสั่งซื้อเพียง 4,500 บาท
http://fastcoding.phpcodemania.com/

สนับสนุนค่ากาแฟผู้เขียนได้ที่

PayPal


ตัวอย่างการใช้งานเพิ่มเติม

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แจกฟรี!! ระบบต่างๆที่พัฒนาด้วย PHP สำหรับนำไปใช้ในงานต่างๆ

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ และด้านล่างนี้ก็เป็นระบบต่างๆที่แจกให้นำไปลองใช้ลองศึกษากันครับ

สอนเขียน PHP แสดงการจองห้องประชุมแบบไฮไลท์ตามช่วงเวลา (แบบเชื่อมต่อฐานข้อมูล MySQL)

ตัวอย่าง ผลลัพธ์ที่ได้จากการจองในฐานข้อมูล ตาราง tb_room สร้างตารางรายชื่อห้องประชุม สำหรับ id นั้นเป็น Primarykey จะกำหนดให้สร้างอัตโนมัติ ทุกครั้งที่เราเพิ่มชื่อห้องประชุมใหม่ -- -- Database: `tobedev_example` -- -- -------------------------------------------------------- -- -- Table structure for table `tb_room` -- CREATE TABLE IF NOT EXISTS `tb_room` (   `id` int(11) NOT NULL,   `name` varchar(30) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- -- Dumping data for table `tb_room` -- INSERT INTO `tb_room` (`id`, `name`) VALUES (1, 'ห้องประชุม 1'), (2, 'ห้องประชุม 2'), (3, 'ห้องประชุม 3'), (4, 'ห้องประชุม 4'), (5, 'ห้องประชุม 5'); -- -- Indexes for dumped tables -- -- -- Indexes for table `tb_room` -- ALTER TABLE `tb_room`   ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tb_room` -- ALTER TABLE `tb_room`   MODIFY `i...

การนำไอคอน มาแสดงบน Fullcalendar

เนื่องจากมีน้องคนหนึ่งให้ช่วยดูโค้ดเกี่ยวกับ Fullcalendar ให้หน่อย แล้วพอดีช่วงนี้ผมก็กำลังสนใจปฏิทิน Fullcalendar อยู่พอดี จึงลองหาสาเหตุที่ไม่สามารถแสดงข้อมูลจาก MySQL และไม่สามารถแทรก icon เข้าไปใน Fullcalendar ได้ จากที่สังเกตุได้ครั้งแรกคือ Error ที่ Console ของ Firefox เกี่ยวกับฟังก์ชั่นที่เขียนผิด และก็มีการ echo ค้างไว้ในส่วนของไฟล์ getCalendar.php ก็เลยจัดการทดสอบแล้วลบ echo ออกให้เหลือแค่ echo json_encode($event_array); ที่ได้ใช้งานจริงเท่านั้น ขั้นตอนการตรวจสอบความถูกต้องของโค้ด PHP 1) ต้องแน่ใจว่าคำสั่งที่เขียนไว้ สามารถดึงข้อมูลมาแสดงผลได้ด้วยการ echo $sql; 2) นำคำสั่งที่ได้ไปรันในโปรแกรมจัดการฐานข้อมูล ในที่นี้คือ phpMyAdmin 3) เมื่อตรวจสอบดูผลลัพธ์ที่ได้ หากถูกต้องมีข้อมูลก็แสดงว่าการ Query ทำงานได้ 4) มาดูการทำงานของ JavaScript ในส่วนของ jQuery มีการแจ้งเตือนที่ฟังก์ชั่น .on() ซึ่งจะใช้กับ jQuery เวอร์ชั่นใหม่เท่านั้น นั่นหมายถึงเวอร์ชั่น jQuery ที่มากับ Fullcalendar เป็นเวอร์ชั่นเก่า ก็ให้เปลี่ยนไปใช้ .live() แทน ก็จะทำงานได้ปกติ 5) ม...