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

回答編集履歴

1

修正

2019/05/31 03:57

投稿

m.ts10806
m.ts10806

スコア80888

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