วิธีสร้างบัญชีไฟล์โดยเรียงตามวันที่ by joeskb
Jun0
วิธีนี้จะเป็นการสร้างประยุกต์ใช้ function ภายใน file helper ของ codeigniter ซึ่งรุ่นใหม่ๆ ผมไม่แน่ใจว่ามีวิธีสำเร็จรูปไว้แล้วหรือยัง
ที่แน่ๆ รุ่นที่กำลังใช้งานอยู่มันยังไม่มีรูปแบบสำเร็จรูป เลยต้องสร้าง function สำหรับใช้งานเอง เนื่องจาก function เตรียมไว้ใช้กับการเรียงไฟล์ที่อัพโหลดขึ้นมาบน server เรื่องเวลาที่ซ้ำกันจริงตัดออกไปนะครับ
function file_list_by_date(&$a_ret, $path, $reverse = TRUE) {
$buffer = array();
foreach (get_filenames($path) as $each) {
$buffer[get_file_info("{$path}{$each}", 'date')['date']] = $each;
}
$a_key = array_keys($buffer);
if ($reverse) {
rsort($a_key);
} else {
sort($a_key);
}
foreach ($a_key as $each) {
$a_ret[] = $buffer[$each];
}
}
อธิบายทีละบรรทัดได้ดังนี้
- บรรทัดแรกประกาศตัวแปล array ไว้รอรับ
- ใช้ foreach เพื่อวนรายชื่อไฟล์ใส่ตัวแปร
- นำวันที่ ในที่นี้จะเป็น timestamp มาเป็น key ของ array
- ใช้ function array_keys เพื่อนำ key ทั้งหมดมาใส่ไว้ในตัวแปร
- เลือกการ sort โดย sort ปกติ จะน้อยไปหามาก ส่วน rsort จะเป็นมากไปหาน้อย
- ถ้าสังเกตจากการประกาศ function $a_ret เราส่งเข้ามาเป็น pointer สำหรับ push ข้อมูลเข้าไปต่อท้ายได้เลย
- ทำการ push ข้อมูลตามลำดับด้วย key ที่ผ่านการจัดเรียงมาแล้ว
Enjoy this article?
Consider subscribing to our RSS feed!
ไม่มีความเห็น
ยังไม่มีความเห็น