回答編集履歴

1

追記

2017/11/11 12:41

投稿

s8_chu
s8_chu

スコア14731

test CHANGED
@@ -67,3 +67,55 @@
67
67
  var_dump(array_count_values($input2) === acv($input2));// true
68
68
 
69
69
  ```
70
+
71
+
72
+
73
+ **(追記)**
74
+
75
+ > 入力がそもそも一行だからループになっていない
76
+
77
+
78
+
79
+ whileループの前で予め`explode`で分割しておくことで解決できます。
80
+
81
+
82
+
83
+ > keyに色名とvalueにそれぞれの色の出現回数をいれたいのにそれも出来てない
84
+
85
+
86
+
87
+ 結果を入れておく配列内にその色名のキーが存在するかどうかを調べて、ある場合はその要素の値に1を足し、無ければ1を代入するようにすれば、キー名を色の名前にして値をその色の出現回数にすることができると思います。
88
+
89
+
90
+
91
+ ```PHP
92
+
93
+ <?php
94
+
95
+ $input = "white yellow blue blue yellow blue";
96
+
97
+ $key_value = explode(" ", $input);
98
+
99
+ $result = [];
100
+
101
+ $i = 0;
102
+
103
+
104
+
105
+ while ($i < count($key_value)) {
106
+
107
+ $key = $key_value[$i];
108
+
109
+ $value = isset($result[$key]) ? $result[$key] + 1 : 1;
110
+
111
+ $result[$key] = $value;
112
+
113
+ $i++;
114
+
115
+ }
116
+
117
+
118
+
119
+ var_dump($result === array_count_values($key_value));// true
120
+
121
+ ```