回答編集履歴

1

回答追記

2018/08/27 04:37

投稿

otn
otn

スコア84574

test CHANGED
@@ -3,3 +3,57 @@
3
3
 
4
4
 
5
5
  元の位置を保ってマージすればいいのでは?
6
+
7
+
8
+
9
+ #コードサンプル
10
+
11
+ 途中まで、yambejpさんのコードをもらいます。
12
+
13
+ ```PHP
14
+
15
+ $a=[
16
+
17
+ ["hoge"=>1 ,"fuga"=>0],
18
+
19
+ ["hoge"=>2 ,"fuga"=>0],
20
+
21
+ ["hoge"=>3 ,"fuga"=>1],
22
+
23
+ ["hoge"=>4 ,"fuga"=>0],
24
+
25
+ ["hoge"=>5 ,"fuga"=>2],
26
+
27
+ ["hoge"=>6 ,"fuga"=>3],
28
+
29
+ ["hoge"=>7 ,"fuga"=>0],
30
+
31
+ ["hoge"=>8 ,"fuga"=>0],
32
+
33
+ ];
34
+
35
+ $b=array_filter($a,function($x){
36
+
37
+ return $x["fuga"]===0;
38
+
39
+ });
40
+
41
+ shuffle($b);
42
+
43
+
44
+
45
+ $bi=0;
46
+
47
+ foreach($a as $ai => $val){
48
+
49
+ if($val["fuga"]===0){
50
+
51
+ $a[$ai] = $b[$bi];
52
+
53
+ $bi++;
54
+
55
+ }
56
+
57
+ }
58
+
59
+ ```