ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

    เราได้รับอาร์เรย์มา ซึ่งประกอบด้วยวันที่ หลายๆวันที่ ในรูปแบบ (Y-m-d) และเราต้องเขียนโปรแกรมใน PHP เพื่อเรียงลำดับวันที่ทั้งหมดที่อยู่ในอาร์เรย์จากมากไปน้อย 

ตัวอย่าง input และ output

Input : array("2018-06-04", "2014-06-08", "2018-06-05")
Output : 2018-06-05  2018-06-04  2014-06-08

Input : array("2016-09-12", "2009-09-08", "2009-09-09")
Output : 2016-09-12  2009-09-09  2009-09-08

เพื่อแก้ปัญหานี้ในC / C++ / Java หรือภาษาโปรแกรมอื่น ๆ เราจะต้องเปรียบเทียบวันที่ตามปีเดือนและสุดท้ายตามวันโดยเก็บไว้ในโครงสร้างใด ๆ หรือโครงสร้างข้อมูลที่ต้องการอื่น ๆ แต่ใน PHP  ปัญหานี้ดูเหมือนจะง่ายมากถ้าเราใช้ฟังก์ชั่น strtotime ()    ฟังก์ชั่น strtotime()  เป็นฟังก์ชั่น PHP ที่ใช้เปลี่ยนวันที่ที่กำหนดในรูปแบบใด ๆ ที่เป็น  timestamp  ซึ่งเป็นจำนวนเต็มขนาดใหญ่ integer โดยปกติแล้วติแล้วในการเรียงลำดับอาร์เรย์เราสามารถใช้ ฟังก์ชั่น usort()  โดยการกำหนดฟังก์ชั่นเปรียบเทียบ ฟังก์ชันตัวเปรียบเทียบจะยอมรับอาร์กิวเมนต์ของวันที่ สองค่าซึ่งจะถูกแปลงเป็นเวลาจำนวนเต็มโดยใช้ฟังก์ชั่น strtotime () จากนั้นเปรียบเทียบกับวันที่จัดเรียงตาม  timestamp พอจะเข้าใจหลักการแล้วใช่ไหมครับ เรามาดูกัน 

ฟังก์ชั่น Inbuilt ที่ใช้:

  •  strtotime(): ฟังก์ชันนี้เปลี่ยนสตริงวันที่ที่กำหนดเป็น timestamp (ค่า integer )
  • usort(): ฟังก์ชั่นนี้จะเรียงลำดับอาร์เรย์ที่กำหนดตามฟังก์ชั่นการเปรียบเทียบที่กำหนด

 

ตัวอย่างโค้ดดังนี้

<?php 
// PHP program to sort array of dates 

// user-defined comparison function 
// based on timestamp 
function compareByTimeStamp($time1, $time2) 
{ 
	if (strtotime($time1) < strtotime($time2)) 
		return 1; 
	else if (strtotime($time1) > strtotime($time2)) 
		return -1; 
	else
		return 0; 
} 

// Input Array 
$arr = array("2016-09-12", "2009-09-06", "2009-09-09"); 

// sort array with given user-defined function 
usort($arr, "compareByTimeStamp"); 

print_r($arr); 

?> 

ผลลัพธ์ที่ได้

Array 
( 
    [0] => 2016-09-12 
    [1] => 2009-09-09 
    [2] => 2009-09-06 
)

ผลลัพธ์ที่ก็เป็น array ที่วันที่ถูกเรียงจากมากไปน้อย หรือ ล่าสุดไปอดีตเรียบร้อย  ซึ่งหลักๆเราใช้แค่สองฟังก์ชันนั้นคือ strtotime() และ usort() หวังว่าผู้อ่านจะเข้าใจและสามารถนำไปต่อยอดได้น่ะครับ 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : ฟังก์ชัน PHP

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ตัวอย่างคำสั่ง การใช้ API ส่งภาพ ผ่าน curl ด้วย binary data
โดย mindphp อ 30 ส.ค. 2020 11:54 pm บอร์ด Linux - Web Server
0
96
อ 30 ส.ค. 2020 11:54 pm โดย mindphp
สอบถามเรื่อง local,server ครับ
โดย nai_cyp พฤ 27 ส.ค. 2020 7:19 pm บอร์ด Programming - C/C++ & java & Python
4
295
จ 31 ส.ค. 2020 5:03 pm โดย mindphp
วิธีใส่รูปภาพประกอบในวิดีโอด้วย DaVinci Resolve 16
โดย nai_cyp พฤ 27 ส.ค. 2020 6:59 pm บอร์ด Graphic design
0
151
พฤ 27 ส.ค. 2020 6:59 pm โดย nai_cyp
Drop off กับ fulfillment เหมือนหรือ ต่างกันมั้ย
โดย thatsawan พ 26 ส.ค. 2020 4:57 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
114
พ 26 ส.ค. 2020 4:57 pm โดย thatsawan
สอบถามกรณีที่มีการจ่ายบิลล่วงหน้าในระบบ Petty cash
โดย natthanit.r2538 พ 26 ส.ค. 2020 4:51 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
3
204
พฤ 27 ส.ค. 2020 4:04 pm โดย natthanit.r2538
การคิด ภพ.36 และการยื่นภพ.36
โดย natthanit.r2538 พ 26 ส.ค. 2020 2:44 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
85
พ 26 ส.ค. 2020 2:52 pm โดย natthanit.r2538
อัพเดทกันเลย Joomla 3.9.21 ปรับปรุงทั้งความปลอดภัยและระบบหลักให้ดีขึ้น
โดย tsukasaz พ 26 ส.ค. 2020 12:14 pm บอร์ด MindPHP News & Feedback
0
125
พ 26 ส.ค. 2020 12:14 pm โดย tsukasaz
สอบถามวิธีดึงข้อมูลจาก Youtube ครับ
โดย nai_cyp พ 26 ส.ค. 2020 11:05 am บอร์ด Programming - C/C++ & java & Python
2
152
พ 26 ส.ค. 2020 11:33 am โดย nai_cyp
แสดงวิธีการขนส่งสินค้าในร้านค้าออนไลน์ด้วย Module Shipping Method ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 6:49 pm บอร์ด MindPHP News & Feedback
0
76
อ 25 ส.ค. 2020 6:49 pm โดย bolue
แท็กชื่อสินค้าในร้านค้าออนไลน์ด้วย Module Products tags name ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 6:29 pm บอร์ด MindPHP News & Feedback
0
80
อ 25 ส.ค. 2020 6:29 pm โดย bolue
วิธีรันโปรแกรม .bat file ใน task schedule โดยไม่เปิด windows ขึ้นมาให้กวนใจ
โดย jirawoot อ 25 ส.ค. 2020 4:46 pm บอร์ด Python Knowledge
0
110
อ 25 ส.ค. 2020 4:46 pm โดย jirawoot
Tracking prevention คืออะไร และมีประโยชน์อย่างไร?
โดย nai_cyp อ 25 ส.ค. 2020 4:21 pm บอร์ด Share Knowledge
0
91
อ 25 ส.ค. 2020 4:21 pm โดย nai_cyp
สอบถามการ ใช้งาน module filter ของ MooZiiCart ค่ะ
โดย bolue อ 25 ส.ค. 2020 4:06 pm บอร์ด MindPHP News & Feedback
4
110
พ 26 ส.ค. 2020 10:27 am โดย bolue
การเช็คข้อมูลการนำส่ง ภ.ง.ด. 90/91
โดย natthanit.r2538 อ 25 ส.ค. 2020 3:51 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
87
อ 25 ส.ค. 2020 4:25 pm โดย natthanit.r2538
มาแล้ววว MDImporter ตัวช่วยในการ import ข้อมูลจากไฟล์ excel เข้าระบบ Joomla!!!!
โดย bolue อ 25 ส.ค. 2020 1:01 pm บอร์ด MindPHP News & Feedback
0
62
อ 25 ส.ค. 2020 1:01 pm โดย bolue
สินค้าที่มีผู้เข้าชมมากที่สุดในร้านค้าออนไลน์ด้วย Module Top Hits ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 12:15 pm บอร์ด MindPHP News & Feedback
0
70
อ 25 ส.ค. 2020 12:15 pm โดย bolue
สินค้าที่ได้คะแนนมากสุดในร้านค้าออนไลน์ด้วย Module Top rating ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 11:59 am บอร์ด MindPHP News & Feedback
0
71
อ 25 ส.ค. 2020 11:59 am โดย bolue
ความคิดเห็นล่าสุดในร้านค้าออนไลน์ด้วย Module Recent Comment ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 11:41 am บอร์ด MindPHP News & Feedback
0
65
อ 25 ส.ค. 2020 11:41 am โดย bolue
แสดงผู้ผลิตสินค้าในร้านค้าออนไลน์ด้วย Module Manufacturer ใน MooZiiCart
โดย bolue จ 24 ส.ค. 2020 7:25 pm บอร์ด MindPHP News & Feedback
0
76
จ 24 ส.ค. 2020 7:25 pm โดย bolue
แสดงราคาสินค้าได้หลายสกุลเงินในร้านค้าออนไลน์ด้วย Module Currency ใน MooZiiCart
โดย bolue จ 24 ส.ค. 2020 5:50 pm บอร์ด MindPHP News & Feedback
0
91
จ 24 ส.ค. 2020 5:50 pm โดย bolue