Devdit
 

เรียงวันที่ PHP ด้วย array_multisort

294

บทความนี้สอนเขียนโปรแกรมเรียงวันที่ด้วยภาษา PHP โดยวันที่ทั้งหมดเก็บอยู่ใน Array สอนทั้งแบบเรียงจากน้อยไปมากด้วย SORT_ASC และเรียงจากมากไปน้อยด้วย SORT_DESC โดยใช้คำสั่ง array_multisort พร้อมแสดงผลลัพธ์ออกสู่หน้าจอ สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง เรียงวันที่ PHP จากน้อยไปมาก (SORT_ASC)

<?php
    $dates = array("2023-02-15", "2021-01-25", "2022-01-13");
    $timestamps = array_map('strtotime', $dates);
    array_multisort($timestamps, SORT_ASC, $dates);
    var_dump($dates);
?>

ผลลัพธ์

array(3) {
[0]=> string(10) "2021-01-25"
[1]=> string(10) "2022-01-13"
[2]=> string(10) "2023-02-15" }

จากตัวอย่างเก็บวันที่ไว้ในตัวแปร array จากนั้นใช้คำสั่ง array_map แปลงวันที่ทั้งหมดด้วย strtotime จากนั้นเรียงวันที่ด้วยคำสั่ง array_multisort โดยกำหนดเป็น SORT_ASC คือเรียงวันที่จากน้อยไปมากด้วยภาษา PHP

 

ตัวอย่าง เรียงวันที่ PHP จากมากไปน้อย (SORT_DESC)

<?php
    $dates = array("2023-02-15", "2021-01-25", "2022-01-13");
    $timestamps = array_map('strtotime', $dates);
    array_multisort($timestamps, SORT_DESC, $dates);
    var_dump($dates);
?>

ผลลัพธ์

array(3) {
[0]=> string(10) "2023-02-15"
[1]=> string(10) "2022-01-13"
[2]=> string(10) "2021-01-25" }

ตัวอย่างนี้เหมือนกับ SORT_ASC แต่ตัวอย่างนี้ต้องการเรียงวันที่จากมากไปหาน้อยจึงกำหนดเป็น SORT_DESC

สรุป บทความนี้สอนเขียนโปรแกรมเรียงลำดับวันที่โดยเก็บวันที่ไว้ใน array จากนั้นแปลงวันที่ให้เป็น timestamp เพื่อให้สามารถเปรียบเทียบค่าได้ด้วยคำสั่ง strtotime สุดท้ายใช้คำสั่ง array_multisort พร้อมกำหนดค่า ถ้าเรียงจากน้อยไปมากให้ใส่ SORT_ASC ถ้าเรียงจากมาไปหาน้อยให้ใส่ SORT_DESC

แก้ไข 5 เดือนที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ