ちょっと、違うとは思うんですが、少し変わった感じでも良いですか?
PHP
1$demo[] = [
2 ['id' => 109, 'date' => '2016-03-30'],['id' => 111, 'date' => '2016-03-30'],
3 ];
4$demo[] = [['id' => 1, 'date' => '2017-01-01']];
5$demo[] = [['id' => 1, 'date' => '2015-10-07']];
6$demo[] = [['id' => 1, 'date' => '2015-01-01']];
7$demo[] = [['id' => 1, 'date' => '2020-01-01']];
まずデモデータを少しバラバラに増やしてみました。
ようは、順番がバラバラなのでソートが必要なんだと思ったので。
で、、、ここからなんですが、、、
いっそまずは配列のキーを'date'にしてみる感じにしてから普通にキーでソートをかけるやり方です。
PHP
1foreach($demo as $val) { // ここで当然第1層が回り
2 foreach($val as $value) { // ここで第二層が回るので
3 $temp[$value['date']][] = $value; // 新しい配列のキーをdateに合わせてみました。
4 }
5}
この場合、第1層を取り除くということはしていませんので、取り除くのが絶対条件だともうアウトですwww
今回はこの場合、、、第一層のキーが[0]ではなく['2016-03-30']といった形になり、第2層に同じ日付で対応するデータが入ってます。
ちなみに、、、
PHP
1$demo[] = [['id' => 1, 'date' => '2015-01-01']];
2$demo[] = [['id' => 1, 'date' => '2015-01-01']];
こういう感じで第1層が別の箱だとしても入れなおしてまとまりますので、、、
PHP
1ksort($temp);
2print_r($temp);
kかkrとかはお好きにww
日付順なので、ksortでいけました。
最後にprint_rした結果を載せておきますね。
PHP
1Array
2(
3 [2015-01-01] => Array
4 (
5 [0] => Array
6 (
7 [id] => 1
8 [date] => 2015-01-01
9 )
10
11 [1] => Array
12 (
13 [id] => 1
14 [date] => 2015-01-01
15 )
16
17 )
18
19 [2015-10-07] => Array
20 (
21 [0] => Array
22 (
23 [id] => 1
24 [date] => 2015-10-07
25 )
26
27 )
28
29 [2016-03-30] => Array
30 (
31 [0] => Array
32 (
33 [id] => 109
34 [date] => 2016-03-30
35 )
36
37 [1] => Array
38 (
39 [id] => 111
40 [date] => 2016-03-30
41 )
42
43 )
44
45 [2017-01-01] => Array
46 (
47 [0] => Array
48 (
49 [id] => 1
50 [date] => 2017-01-01
51 )
52
53 )
54
55 [2020-01-01] => Array
56 (
57 [0] => Array
58 (
59 [id] => 1
60 [date] => 2020-01-01
61 )
62
63 )
64
65)
上のデモデータをそのままやった結果です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。