teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

見直し

2018/11/08 13:09

投稿

退会済みユーザー
answer CHANGED
@@ -42,4 +42,48 @@
42
42
  [PHP: 配列のソート - Manual](http://jp2.php.net/manual/ja/array.sorting.php)
43
43
 
44
44
  日付を降順にしたいのであれば、
45
- cmp()関数定義で1と-1を逆にすれば降順になるよ。
45
+ cmp()関数定義で1と-1を逆にすれば降順になるよ。
46
+
47
+ ---
48
+
49
+ 日付キーじゃなく連番との指定がありましたので。
50
+
51
+ ```php
52
+ <?php
53
+
54
+ $items = [
55
+ "data_id" => 1,
56
+ "data" => [
57
+ "2018-11-08" => [
58
+ "id" => 7868,
59
+ "date" => "2018-11-08",
60
+ ],
61
+ "2018-10-19" => [
62
+ "id" => 7820,
63
+ "date" => "2018-10-19",
64
+ ],
65
+ "2018-10-02" => [
66
+ "id" => 7722,
67
+ "date" => "2018-10-02",
68
+ ]
69
+ ]
70
+ ];
71
+
72
+ print_r($items['data']);
73
+
74
+ function cmp($a, $b) {
75
+ if ($a['date'] == $b['date']) {
76
+ return 0;
77
+ }
78
+ return ($a['date'] < $b['date']) ? 1 : -1;
79
+ }
80
+
81
+ uasort($items['data'], 'cmp');
82
+ $items['data'] = array_values($items['data']);
83
+
84
+
85
+ print_r($items['data']);
86
+ ```
87
+
88
+ 結果
89
+ ![実行結果](39c027080e33cba2364110a98a871a05.png)

2

加筆修正

2018/11/08 13:09

投稿

退会済みユーザー
answer CHANGED
@@ -36,5 +36,10 @@
36
36
  結果
37
37
  ![実行結果](240f56435f92436b8a1953a7fb7dfdc2.png)
38
38
 
39
+ ユーザー定義関数を使ったソートがいいんじゃないかと考え、
40
+ uasort()を使ってみました。
41
+ ソート用関数の特徴については
42
+ [PHP: 配列のソート - Manual](http://jp2.php.net/manual/ja/array.sorting.php)
43
+
39
44
  日付を降順にしたいのであれば、
40
45
  cmp()関数定義で1と-1を逆にすれば降順になるよ。

1

加筆修正

2018/11/08 12:32

投稿

退会済みユーザー
answer CHANGED
@@ -34,4 +34,7 @@
34
34
  ```
35
35
 
36
36
  結果
37
- ![実行結果](240f56435f92436b8a1953a7fb7dfdc2.png)
37
+ ![実行結果](240f56435f92436b8a1953a7fb7dfdc2.png)
38
+
39
+ 日付を降順にしたいのであれば、
40
+ cmp()関数定義で1と-1を逆にすれば降順になるよ。