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

質問編集履歴

1

記事を見直して最初からの間違いを訂正

2017/11/11 12:03

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,14 +1,8 @@
1
1
  ```php
2
2
  <?php
3
- $input = [
4
- 0=>'white',
3
+ $input = "white yellow blue blue yellow blue";
5
- 1=>'yellow',
4
+ $array = explode(" " , $input);
6
- 2=>'blue',
7
- 3=>'blue',
8
- 4=>'yellow',
9
- 5=>'blue',
10
- ];
11
- $count = array_count_values($input);
5
+ $count = array_count_values($array);
12
6
 
13
7
  foreach($count as $key => $value){
14
8
  echo $key;
@@ -26,4 +20,17 @@
26
20
  PHPの連想配列のkeyに重複する物があった場合valueとともに上書きされてしまうという
27
21
  仕様を読んで、どうすればいいかわからなくなってしまいました。
28
22
  できましたら答えだけじゃなくどういう書籍やサイトで勉強をされたかも教えていただけたら嬉しいです。
29
- また、先程の記事も見てくださった方がいらっしゃいましたら再びで申し訳ないですがよろしくお願いします。
23
+ また、先程の記事も見てくださった方がいらっしゃいましたら再びで申し訳ないですがよろしくお願いします。
24
+
25
+ 追記
26
+ ```php
27
+ while($input){
28
+ $key_value = explode(" ", $input);
29
+ $key = $key_value;
30
+ $value = count($key_value);
31
+ $a[$key] = $value;
32
+ }
33
+ ```
34
+ 先に作ってある$inputの中身の空白を取りながら色をわけてkeyにいれる、そのkeyのvalueには
35
+ カウントした数を入れたいのですが、上記のように書くと入力がそもそも一行だからループになっていない、keyに色名とvalueにそれぞれの色の出現回数をいれたいのにそれも出来てないと言った状況で、whileを使うこと自体が間違いだと思っています。
36
+ 知っていることが少なく適切な使い方もできていません。どうすればいいでしょうか。