回答編集履歴

1

修正

2019/05/31 03:57

投稿

m.ts10806
m.ts10806

スコア80854

test CHANGED
@@ -1,3 +1,47 @@
1
- どうしたいのかは確認中なので「同じキーの時」を判定するヒントだけ。
1
+ ~~どうしたいのかは確認中なので「同じキーの時」を判定するヒントだけ。~~
2
2
 
3
+ ~~・array_key_exists()~~
4
+
5
+
6
+
3
- - [array_key_exists()](https://www.php.net/manual/ja/function.array-key-exists.php)
7
+ 結局は[前の質問](https://teratail.com/questions/192342)と同じで
8
+
9
+
10
+
11
+ > $ar['fruits'][$rand]**[0]**['add'] = '追加'; // これが1回しか追加されない
12
+
13
+
14
+
15
+ 太字にしたところ、固定にしているからです。
16
+
17
+ $変数名[] で入れると結果の通り「キーを0から順番に」値を作っていきます。
18
+
19
+ つまり0を固定で指定しているかぎり、最初の配列にしか値は作られません。
20
+
21
+
22
+
23
+ $iが0始まりでカウントアップしているなら明示的にキーを指定してあげると良いです。
24
+
25
+
26
+
27
+ ```php
28
+
29
+ $ar['fruits'][$rand][$i] = [
30
+
31
+ 'name' => 'apple',
32
+
33
+ 'color' => 'red'
34
+
35
+ ];
36
+
37
+
38
+
39
+ if( $add == 'on' ){
40
+
41
+ $ar['fruits'][$rand][$i]['add'] = '追加';
42
+
43
+ }
44
+
45
+
46
+
47
+ ```