回答編集履歴

3

見直し

2018/11/08 13:09

投稿

退会済みユーザー
test CHANGED
@@ -87,3 +87,91 @@
87
87
  日付を降順にしたいのであれば、
88
88
 
89
89
  cmp()関数定義で1と-1を逆にすれば降順になるよ。
90
+
91
+
92
+
93
+ ---
94
+
95
+
96
+
97
+ 日付キーじゃなく連番との指定がありましたので。
98
+
99
+
100
+
101
+ ```php
102
+
103
+ <?php
104
+
105
+
106
+
107
+ $items = [
108
+
109
+ "data_id" => 1,
110
+
111
+ "data" => [
112
+
113
+ "2018-11-08" => [
114
+
115
+ "id" => 7868,
116
+
117
+ "date" => "2018-11-08",
118
+
119
+ ],
120
+
121
+ "2018-10-19" => [
122
+
123
+ "id" => 7820,
124
+
125
+ "date" => "2018-10-19",
126
+
127
+ ],
128
+
129
+ "2018-10-02" => [
130
+
131
+ "id" => 7722,
132
+
133
+ "date" => "2018-10-02",
134
+
135
+ ]
136
+
137
+ ]
138
+
139
+ ];
140
+
141
+
142
+
143
+ print_r($items['data']);
144
+
145
+
146
+
147
+ function cmp($a, $b) {
148
+
149
+ if ($a['date'] == $b['date']) {
150
+
151
+ return 0;
152
+
153
+ }
154
+
155
+ return ($a['date'] < $b['date']) ? 1 : -1;
156
+
157
+ }
158
+
159
+
160
+
161
+ uasort($items['data'], 'cmp');
162
+
163
+ $items['data'] = array_values($items['data']);
164
+
165
+
166
+
167
+
168
+
169
+ print_r($items['data']);
170
+
171
+ ```
172
+
173
+
174
+
175
+ 結果
176
+
177
+ ![実行結果](39c027080e33cba2364110a98a871a05.png)

2

加筆修正

2018/11/08 13:09

投稿

退会済みユーザー
test CHANGED
@@ -74,6 +74,16 @@
74
74
 
75
75
 
76
76
 
77
+ ユーザー定義関数を使ったソートがいいんじゃないかと考え、
78
+
79
+ uasort()を使ってみました。
80
+
81
+ ソート用関数の特徴については
82
+
83
+ [PHP: 配列のソート - Manual](http://jp2.php.net/manual/ja/array.sorting.php)
84
+
85
+
86
+
77
87
  日付を降順にしたいのであれば、
78
88
 
79
89
  cmp()関数定義で1と-1を逆にすれば降順になるよ。

1

加筆修正

2018/11/08 12:32

投稿

退会済みユーザー
test CHANGED
@@ -71,3 +71,9 @@
71
71
  結果
72
72
 
73
73
  ![実行結果](240f56435f92436b8a1953a7fb7dfdc2.png)
74
+
75
+
76
+
77
+ 日付を降順にしたいのであれば、
78
+
79
+ cmp()関数定義で1と-1を逆にすれば降順になるよ。