9 Tháng 9, 2016 • Tác giả: Thịnh Nguyễn • Chuyên mục: Công cụ

Sử dụng hàm arsort đặt lại trật tự thứ tự trong mảng

php-block

Xin chào tất cả các bạn, hôm nay Thịnh chi sẻ với bạn một hàm php cũng khá hay và cũng khá hữu ích trong quá trình lập trình web bằng ngôn ngữ php. Trả là bữ vừa rồi mình cần phải làm một menu theo tháng năm để khi click vào thì ra bài viết theo tháng và theo năm. Nhưng khổ lỗi mình lại chưa nghĩ ra làm sao để có được cách xử lý tạo một mảng năm và trong năm hiện tại thì có tháng nhưng cũng may thay một lúc mày mò cũng ra cách giải quyết nhưng hơi dở phải sử dụng đến 2 vòng lặp rắc rối để giải quyết. Nhưng sau khi giải quyết được thì mình lại gặp một  vấn đề là nó lại hiển thị theo danh sách từ tháng một thới tháng 9 hiện tại thay vì muốn hiển thị ngược lại.

Điều đó là rất khó khăn khi mình đổi một mảng giá trị từ xuôi sang ngược lại giảm dần là rất khó. Nó không giống nhưu bạn lấy cơ sở dữ liệu rồi tạo thành một mảng ngược xuôi theo thứ tự nào đó trong cơ sở dữ liệu. Nhưng đây là một mảng không lấy từ cơ sở dữ liệu mà mình tự hình thành theo thời gian.

Để minh họa dễ hình dung cho bài viết chi sẻ này thì ở bài này mình sử dụng hàm arsort dùng để đảo thứ tự từ nhớn xuống bé danh sách tháng trong năm.

Khi bạn sử dụng hàm arsort là một hàm php có sẵn và việc sử dụng nó cũng khá đơn giản giúp bạn đảo giá trị trật tự từ dưới lên thành từ trên xuống tức là đổi trật tự từ số bé tới số to thành số to tới số bé.

Cụ thể ví dụ như sau:

  • Yêu cầu bài toán đặt ra: hiển thị danh sách các năm và năm hiện tại thì hiển thị tới tháng hiện tại.
  • Tiếp theo là tình bày nó ra ngoài trang web theo thứ tự năm hiện tại giảm dần về các năm trước và các tháng từ tháng hiện tại về các tháng trước đó.

array(
   [2016] => array(
      [01] => 01
      [02] => 02
      [03] => 03
      [04] =>04
      [05] => 05
      [06] => 06
      [07] => 07
      [08] => 08
      [09] => 09
     )
   [2015] => 2015
   [2014] => 2014
   [2013] => 2013
   [2012] => 2012
   [2011] => 2011
)

Như vậy là năm là đã được đúng theo yêu cầu giảm dần nhưng tháng thì nó lại bị lộn và chính vì vậy mình tiến hành sử dụng vòng lặp foreach để nó giảm về năm hiện tại và tạo điều kiện if else để xử lý riêng năm 2016 để tách mảng và năm còn lại thì sẽ trả về trong else như sau.


foreach ($year as $key => $value) {

   if($value != '' and $key == $date_year) {
   // $date_year là biến mình đã xác định giá trị được là năm hiện tại
   // tại đây mình tiến hành thực hiện một vòng lặp foreach nữa để lấy giá trị từng thành phần trong mảng năm 2016 và in ra ngoài website.
   // nhưng trước khi thực hiện thì bạn cần đổi danh sách tháng từ 01 đến 09 thành 09 về 01 thì mới đúng cách trình bày hiển thị tháng hiện tại trên cùng và năm hiện tại trên cùng
   // cách sử dụng là hàm arsort
   // $value là mảng danh sách tháng và mình dùng luôn arsort

   arsort($value)
      foreach ($value as $mo) {
        // noi dung in ra thanh phan mang cac thang trong nam hien tại
      }
   }
   else{
   // phần này hiển thị các năm không có tháng để tránh bạn hiển thị lại năm hiện tại
   }
}

Kết quả cuối cùng bạn có được một mảng như sau và code hiển thị thì do bạn thực hiện


array(
   [2016] => array(
      [09] => 09
      [08] => 08
      [07] => 07
      [06] => 06
      [05] => 05
      [04] => 04
      [03] => 03
      [02] => 02
      [01] => 01
   )
   [2015] => 2015
   [2014] => 2014
   [2013] => 2013
   [2012] => 2012
   [2011] => 2011
)

Cách làm là như vậy, tác dụng của hàm arsort là đổi lại trật tự thành phần trong mảng để giúp bạn có thể hiển thị kết quả ngoài site theo ý muốn

Tác giả: Thịnh Nguyễn

Chuyên gia chia sẻ kiến thức về lập trình, thiết kế web và tối ưu hệ thống server.

Chia sẻ bài viết này:

0 bình luận

Để lại bình luận của bạn

Địa chỉ email của bạn sẽ không được công bố rộng rãi. Các trường bắt buộc được đánh dấu *

Bài viết liên quan

Hướng dẫn tạo công cụ tìm kiếm Custom Search của Google cho website của bạn

Tìm kiếm trên môi trường internet là điều mà chúng ta thường làm hằng ngày nhưng đối với những người chưa quen thì đó là khó. Vì thế mà ngày nay có rất nhiều công cụ tìm kiếm được sinh ra và nổi bật mạnh mẽ nhất vẫn là Google Search. Một công cụ tìm […]

Xem chi tiết →

Tạo biểu tượng Font với công cụ hỗ trợ từ Font Awesome cho Framework CSS

Font Awesome, một trong những Framework CSS tốt nhất hiện nay dành cho Web Developer. Bởi tính tiện dụng của nó cũng như bạn không phải mất công viết css cho từng biểu tượng bởi Font Awesome đã viết sẵn cho bạn rất nhiều biểu tượng. Với hơn 634 biểu tượng bằng font chữ giúp các lập […]

Xem chi tiết →

Hướng dẫn kích hoạt nền tảng chat messenger để tích hợp chatbox vào website

Ở bài trước mình đã viết hướng dẫn các bạn kích hoạt tính năng chat messenger cho fanpage thì ở bài này mình tiếp tục hướng dẫn các bạn tích hợp chat messenger của fanpage cho website của bạn làm chatbox tăng độ tương tác. Xem thêm: Hướng dẫn kích hoạt tính năng tin nhắn trên […]

Xem chi tiết →