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 cách xem mật khẩu đăng nhập website đã đồng bộ trên Google Chrome

Mật khẩu là một dãy các ký tự đặc biệt do bạn nhập vào, nó đảm bảo an ninh cho bạn trong việc đăng nhập bất kỳ một website hay ứng dụng nào và nó cực kỳ quan trọng. Khi bạn mất mật khẩu thì đó là điều vô cùng tệ hại và hơn nữa […]

Xem chi tiết →

Hướng dẫn cách tra mã bưu chính zipcode chuẩn xác tới tận nơi bạn sinh sống

Mã bưu chính Zip/Postal code là một dãy số tùy theo quốc gia sử dụng nhưng đều được phân chia để tránh bị trùng lặp dùng để phân chia giá trị về địa lý để khi mua hàng hay đặt hàng mà website yêu cầu mã zip code xác thực thông tin bạn đến từ […]

Xem chi tiết →

Cách dùng hàm preg_macth trong lập trình web PHP

Hàm preg_macth là một trong những hàm khá quan trọng trong lập trình PHP dùng để lọc kiểm tra cũng như. Nó giúp chúng ta kiểm tra, so sánh và đưa ra kết quả theo ý muốn mà bạn muốn. Sau đây mình sẽ nói chi tiết về hàm này preg_match ($pattern, $subject, &$matches) $pattern: là […]

Xem chi tiết →