Làm cách nào để sắp xếp một mảng ngày tháng trong php?

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
7

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
8

ORIGINAL DATA:

';

$data = array(
'Saturn|7|8|9|0||',
'Hello|0|1|2|3||',
'SFX|5|3|2|4||',
'HP|9|0|5|6||'
);

print_r($data);

sort($data);
reset($data);

echo '
RAW SORT:

';

print_r($data);

for ($c = 0; $c < count($data); $c++) {
    list ($letter,$g1,$g2,$g3,$g4,$end) = explode ('|', $data[$c]);
    $lowercase = strtolower($letter);
    $data2[$c] = array($lowercase,$g1,$g2,$g3,$g4,$letter);
}

sort($data2);
reset($data2);

echo '
LOWERCASE SORT:

';

print_r($data2);

echo '

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
9

Hàm usort() trong PHP cung cấp một cách dễ dàng để sắp xếp một mảng theo các giá trị. Phương thức usort() có thể được sử dụng để sắp xếp một mảng kết hợp theo khóa-giá trị cụ thể bằng cách sử dụng PHP. Trong ví dụ này, chúng tôi sẽ chỉ cho bạn cách sắp xếp mảng nhiều chiều theo dữ liệu trong PHP

Đoạn mã sau giúp sắp xếp một mảng theo giá trị dữ liệu theo thứ tự tăng dần trong PHP

  • Hàm strtotime() dùng để chuyển đổi dữ liệu thành dấu thời gian với PHP
$events_arr = array(
  array('title' => 'Event 1', 'date' => '2022-02-25'),
  array('title' => 'Event 2', 'date' => '2022-02-21'),
  array('title' => 'Event 3', 'date' => '2022-02-15'),
  array('title' => 'Event 4', 'date' => '2022-01-22'),
  array('title' => 'Event 5', 'date' => '2022-01-18')
);

usort($events_arr, function($a, $b) {
  return strtotime($a['date']) - strtotime($b['date']);
});

Chúng tôi được cung cấp một mảng bao gồm nhiều ngày ở định dạng (Y-m-d). Chúng ta phải viết một chương trình bằng PHP để sắp xếp tất cả các ngày có trong mảng theo thứ tự giảm dần

ví dụ

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

Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp



Để giải quyết vấn đề này trong C/C++/Java hoặc bất kỳ ngôn ngữ lập trình có mục đích chung nào khác, chúng tôi phải so sánh ngày dựa trên năm, tháng và cuối cùng là theo ngày bằng cách lưu trữ chúng trong bất kỳ cấu trúc nào hoặc bất kỳ cấu trúc dữ liệu mong muốn nào khác. Nhưng trong PHP vấn đề này dường như rất dễ dàng nếu chúng ta áp dụng hàm strtotime(). Hàm strtotime() là một hàm PHP thay đổi một ngày nhất định ở bất kỳ định dạng nào thành dấu thời gian có bản chất là một số nguyên lớn và sau đó trong khi sắp xếp mảng, chúng ta có thể dễ dàng sử dụng PHP. hàm usort() bằng cách xác định hàm so sánh. Hàm so sánh sẽ chấp nhận hai đối số ngày sẽ được chuyển đổi thành dấu thời gian nguyên bằng cách sử dụng hàm strtotime() và sau đó được so sánh với ngày sắp xếp dựa trên giá trị dấu thời gian nguyên

Chức năng sẵn có được sử dụng

  • strtotime(). Hàm này thay đổi chuỗi ngày đã cho thành dấu thời gian (giá trị int lớn)
  • sắp xếp(). Hàm này sắp xếp mảng đã cho theo hàm so sánh do người dùng xác định

Dưới đây là triển khai PHP của ý tưởng trên

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

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

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

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

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

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

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

Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
4
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
5
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
6
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
7
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
6
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
7
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
00
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
7
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
6
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
1
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
04

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

Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
4
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
09
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
5
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
6
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
7
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
6
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
7
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
15
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
7
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
6
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
1
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
19

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

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

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

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

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

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

Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
31
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
32
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
33
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
6
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
35
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
0
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
37
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
0
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
39
Array
(
    [0] => 2016-09-12
    [1] => 2009-09-09
    [2] => 2009-09-06
)
40

Làm cách nào để sắp xếp ngày trong PHP MySQL?

Chọn và sắp xếp dữ liệu từ cơ sở dữ liệu MySQL . Theo mặc định, mệnh đề ORDER BY sắp xếp các bản ghi theo thứ tự tăng dần. Để sắp xếp các bản ghi theo thứ tự giảm dần, hãy sử dụng từ khóa DESC. The ORDER BY clause is used to sort the result-set in ascending or descending order. The ORDER BY clause sorts the records in ascending order by default. To sort the records in descending order, use the DESC keyword.

Làm cách nào để sắp xếp mảng theo giá trị trong PHP?

Hàm arsort() sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo giá trị. Mẹo. Sử dụng hàm asort() để sắp xếp một mảng kết hợp theo thứ tự tăng dần, theo giá trị. Mẹo. Sử dụng hàm krsort() để sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo khóa

Làm cách nào để sắp xếp một mảng nhiều chiều trong PHP?

Cách sắp xếp mảng nhiều chiều theo giá trị khóa trong PHP .
Sử dụng hàm PHP array_column() để lấy các giá trị từ một cột khóa cụ thể trong mảng
Sử dụng hàm PHP array_multisort() để sắp xếp một mảng theo giá trị khóa