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

Sử dụng Google Font làm Font cho website của bạn

Trong quá trình thiết kế website chắc hẳn bạn sẽ gặp những website có những font chữ uốn lượn! Đó là do chủ đích của chủ sở hữu website muốn thiết kế như vậy và khiến cho người vẽ giao diện cũng phải chiều theo ý muốn. Tuy nhiên có một điều là không phải […]

Xem chi tiết →

Hướng dẫn nâng dung lượng import cơ sở dữ liệu vào phpmyadmin trên Xampp

Xin chào tất cả các bạn, hôm nay Thịnh rảnh rỗi làm một hướng dẫn nho nhỏ giúp các bạn có thể nâng dung lượng import cơ sở dữ liệu vào phpmyadmin trên Xampp để thuận tiện cho quá trình bạn lập trình web hơn. Lý do tại sao lại phải nâng dung lượng import […]

Xem chi tiết →

Hướng dẫn đổi ngôn ngữ sang tiếng Việt trong trang quản trị của zopim

Trong quá trình sử dụng zopim chắc hẳn bạn sẽ cảm thấy chán nản vì vấn đề bạn kém về tiếng Anh hoặc vài vấn đề nào đó mà bạn muốn chuyển đổi ngôn ngữ trong zopim thì chắc hẳn bạn muốn chuyển sang tiếng Việt? Nhưng vấn đề này đơn giản chỉ vài bước […]

Xem chi tiết →