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

回答編集履歴

1

niji

2021/12/24 11:49

投稿

yambejp
yambejp

スコア118102

answer CHANGED
@@ -17,4 +17,39 @@
17
17
  ["A","B","C","D","E","F","G","A","B","D","F","A","B","D","B","B","B"]
18
18
  が返る
19
19
  */
20
+ ```
21
+
22
+ # 二次配列の場合
23
+ 二次配列でも考え方は同じ
24
+ ```PHP
25
+ <?PHP
26
+ $a=[
27
+ ['id' => '2' ,'category_id' => 'A',],
28
+ ['id' => '30' ,'category_id' => 'A',],
29
+ ['id' => '12' ,'category_id' => 'B',],
30
+ ['id' => '8' ,'category_id' => 'B',],
31
+ ['id' => '10' ,'category_id' => 'C',],
32
+ ['id' => '329' ,'category_id' => 'D',],
33
+ ['id' => '89' ,'category_id' => 'E',],
34
+ ['id' => '79' ,'category_id' => 'E',],
35
+ ['id' => '58' ,'category_id' => 'A',],
36
+ ['id' => '219' ,'category_id' => 'B',],
37
+ ['id' => '44' ,'category_id' => 'B',],
38
+ ['id' => '3219' ,'category_id' => 'B',],
39
+ ['id' => '231' ,'category_id' => 'B',],
40
+ ['id' => '43210','category_id' => 'F',],
41
+ ];
42
+ $b=[];
43
+ $c=[];
44
+ while(count($a)>0){
45
+ //shuffle($a);
46
+ $category=isset($c["category_id"])?$c["category_id"]:null;
47
+ $a=array_merge(array_filter($a,function($x) use($category){
48
+ return $x["category_id"]!=$category;
49
+ }),array_filter($a,function($x) use($category){
50
+ return $x["category_id"]==$category;
51
+ }));
52
+ $b[]=($c=array_splice($a,0,1)[0]);
53
+ }
54
+ print json_encode($b);
20
55
  ```