การใช้งานแอเรย์ (Array) ของ PHP (ตอนที่ 3)
ห้อง 102 เข้าพักวันที่ 10
ห้อง 103 เข้าพักวันที่ 10
ห้อง 102 เข้าพักวันที่ 11
ห้อง 101 เข้าพักวันที่ 11
ห้อง 103 เข้าพักวันที่ 12
ห้อง 102 เข้าพักวันที่ 12
ห้อง 102 เข้าพักวันที่ 12
<?php
// สมมุติข้อมูลจาก database (ประมาณนี้)
$result = array();
$result[] = array('room' => 101, 'date' => 10);
$result[] = array('room' => 102, 'date' => 10);
$result[] = array('room' => 103, 'date' => 10);
$result[] = array('room' => 102, 'date' => 11);
$result[] = array('room' => 101, 'date' => 11);
$result[] = array('room' => 103, 'date' => 12);
$result[] = array('room' => 102, 'date' => 12);
?>
ข้อมูลที่ query ออกมาจาก database จะมีรูปแบบตามข้อมูลด้านบน ซึ่งก็เหมือนกับตัวอย่างก่อน
<?php
// วนลูปเพื่อสรุปข้อมูลว่าในวันที่ต่างๆ มีผู้เข้าพักกี่ห้อง ห้องใดบ้าง
$datas = array();
foreach ($result AS $items) {
// นับจำนวนผู้เข้าพักในวันที่ $items['date'];
$datas[$items['date']]['count']++;
// แอเรย์เก็บชื่อห้องพักในวันที่ $item['date']
$datas[$items['date']]['rooms'][] = $items['room'];
}
// สำหรับดูโครงสร้างของข้อมูล
print_r($datas);
// แสดงผลลัพท์;
foreach ($datas AS $date => $items) {;
echo "<p>วันที่ $date มีผู้เข้าพัก $items[count] ห้อง (".implode(',', $items['rooms']).")</p>";
};
?>
จากตัวอย่างเราจะใช้เทคนิคแอเรย์หลายมิติในการจัดการกับข้อมูล
- $datas[วันที่]['count'] สำหรับเก็บจำนวนห้องพักทั้งหมด และ
- $datas[วันที่]['rooms'] สำหรับเก็บหมายเลขห้อง ซึ่งเป็นแบบแอเรย์
- implode() ใช้สำหรับการรวมแอเรย์เป็น string
มี 4 ตอนนะครับ อ่านต่อตอนอืนๆที่ลิงค์ด้านล่าง