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

    เราได้รับอาร์เรย์มา ซึ่งประกอบด้วยวันที่ หลายๆวันที่ ในรูปแบบ (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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
วิธีแก้ไขปัญหา สำหรับ การนำ Template phpbb 3.3 มาใช้ใน phpbb 3.2
โดย thatsawan อ 31 มี.ค. 2020 7:27 pm บอร์ด phpBB user Guide Knowledge
0
3
อ 31 มี.ค. 2020 7:27 pm โดย thatsawan
B - เว็บเข้าไม่ได้ error www.phpbbthailand.com
โดย thatsawan อ 31 มี.ค. 2020 7:13 pm บอร์ด phpbbthailand.com
0
2
อ 31 มี.ค. 2020 7:13 pm โดย thatsawan
สอบถาม ผมลองใช้ curl ของ API ของ gitlab แล้ว "message":"401 Unauthorized ครับ
โดย jirawoot อ 31 มี.ค. 2020 5:16 pm บอร์ด Programming - C/C++ & java & Python
1
43
อ 31 มี.ค. 2020 5:35 pm โดย jirawoot
การเชื่อมต่อ API ของ GitLab เพื่อดาวน์โหลดไฟล์
โดย tsukasaz อ 31 มี.ค. 2020 12:52 pm บอร์ด PHP Knowledge
0
9
อ 31 มี.ค. 2020 12:52 pm โดย tsukasaz
วิธิการใส่ icon favorite เพื่อแสดงในแต่ละ browser
โดย Ittichai_chupol อ 31 มี.ค. 2020 11:14 am บอร์ด Graphic design
3
61
อ 31 มี.ค. 2020 12:57 pm โดย mindphp
สิ่งที่เกิดขึ้นจริงในการประชุมด้วยเทคโนโลยี Conference Call #Work from home
โดย thatsawan อ 31 มี.ค. 2020 10:39 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
15
อ 31 มี.ค. 2020 10:39 am โดย thatsawan
ช่วงนี้ Work From Home ก็จะลำบากนิดนึงแหละเนอะ #ทาสเเมว
โดย thatsawan จ 30 มี.ค. 2020 2:29 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
14
จ 30 มี.ค. 2020 2:29 pm โดย thatsawan
อยากทราบวิธีสร้างเว็บหน้าเดียวแบบกรอกข้อมูลเสร็จแล้วประมวลผล
โดย phongkhukhan ส 28 มี.ค. 2020 1:00 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
2
200
ส 28 มี.ค. 2020 1:09 am โดย mindphp
แสดงสินค้าที่อยากได้ใน Wishlist ด้วย Module Wishlist
โดย prmindphp ศ 27 มี.ค. 2020 5:26 pm บอร์ด MindPHP News & Feedback
0
58
ศ 27 มี.ค. 2020 5:26 pm โดย prmindphp
ต้องการสร้าง subtype
โดย blackbullx16 ศ 27 มี.ค. 2020 4:15 pm บอร์ด SQL - Database
0
169
ศ 27 มี.ค. 2020 4:15 pm โดย blackbullx16
อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ
โดย Ittichai_chupol ศ 27 มี.ค. 2020 11:10 am บอร์ด Programming - PHP
1
87
ส 28 มี.ค. 2020 11:42 am โดย mindphp
อยากทราบวิธีการแก้ไขการแปลงปีวันที่ใน phpbb ผิด เมื่อกรอกวันที่ 29/02
โดย Ittichai_chupol ศ 27 มี.ค. 2020 10:42 am บอร์ด Programming - PHP
3
61
จ 30 มี.ค. 2020 7:01 pm โดย mindphp
อยากทราบวิธีการจะสร้างการทำงานสำหรับการแจ้งเตือนของ Extension ในอีเวน cron
โดย Ittichai_chupol พฤ 26 มี.ค. 2020 10:34 am บอร์ด PHP Knowledge
2
204
พฤ 26 มี.ค. 2020 2:34 pm โดย LEG
แสดงสินค้าขายดีในร้านค้าออนไลน์ด้วย Module Bestseller
โดย prmindphp พ 25 มี.ค. 2020 5:42 pm บอร์ด MindPHP News & Feedback
0
69
พ 25 มี.ค. 2020 5:42 pm โดย prmindphp
อยากทราบวิธีการที่จะสามารถปิดการแสดงของ modules ใน ucp โดยไม่ต้องเข้าไปจัดการในระบบ
โดย Ittichai_chupol พ 25 มี.ค. 2020 1:04 pm บอร์ด Programming - PHP
1
88
พ 25 มี.ค. 2020 1:05 pm โดย Ittichai_chupol
วิธีการสมัครเข้าใช้งาน Skype สำหรับใช้งาน VDO video conference ในมือถือ
โดย numtan5839 พ 25 มี.ค. 2020 11:26 am บอร์ด Microsoft Office Knowledge & line & Etc
1
204
พฤ 26 มี.ค. 2020 2:34 pm โดย LEG
อยากท่องเที่ยวใหว้พระอุดรกับรถเช่าอุดร แนะนำ
โดย udon999 อ 24 มี.ค. 2020 10:49 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
66
อ 24 มี.ค. 2020 10:49 pm โดย udon999
อยากเที่ยวอุดร ลองเช่ารถอุดร ท่องเที่ยวใหว้พระเชิญทางนี้
โดย udon999 อ 24 มี.ค. 2020 9:57 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
45
อ 24 มี.ค. 2020 9:57 pm โดย udon999
แสดงหมวดหมู่สินค้าให้กับร้านค้าออนไลน์ด้วย Module Category
โดย prmindphp อ 24 มี.ค. 2020 5:57 pm บอร์ด MindPHP News & Feedback
0
49
อ 24 มี.ค. 2020 5:57 pm โดย prmindphp
3 การขนส่งสินค้าที่แปลกที่สุดในโลก
โดย ngongsus อ 24 มี.ค. 2020 12:58 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
64
อ 24 มี.ค. 2020 12:58 pm โดย ngongsus