質問編集履歴

4

マニュアルに沿ったやり方を試したため

2020/01/03 05:55

投稿

2525mi
2525mi

スコア8

test CHANGED
File without changes
test CHANGED
@@ -18,26 +18,34 @@
18
18
 
19
19
 
20
20
 
21
- $file = "data.csv";
21
+ $row = 1;
22
22
 
23
- $handle = fopen($file, "r");
23
+ if (($handle = fopen("data.csv", "r")) !== FALSE) {
24
24
 
25
- $data = fgetcsv($handle, 1000,",",'"');
25
+ while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
26
26
 
27
- foreach($data as $line){
27
+ if(array_search('/りんご/', $data) !== 0){
28
28
 
29
- for($i = 0; $i < count($data); $i++){
29
+ $num = count($data);
30
30
 
31
- $result = array_search('りんご',(array)$line);
31
+ echo "<p> $num fields in line $row: <br /></p>\n";
32
32
 
33
- var_dump($result);
33
+ $row++;
34
34
 
35
- }}
35
+ for ($c=0; $c < $num; $c++) {
36
36
 
37
+ echo $data[$c] . "<br />\n";
38
+
39
+ }
40
+
41
+ }}
42
+
37
- fclose($handle);
43
+ fclose($handle);
44
+
45
+ }
38
46
 
39
47
  ```
40
48
 
41
49
 
42
50
 
43
- 上記のようにコードを書いたころ bool(false)と複数出ま。そ数は恐らく「りんご」に該当する数なのですが、データの中身を表示させたす。ご教授いただければ幸いです。
51
+ 上記のコードですと、すべてのデータが出てきてします。修正していただけますと幸いです。

3

誤字のため

2020/01/03 05:55

投稿

2525mi
2525mi

スコア8

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  for($i = 0; $i < count($data); $i++){
30
30
 
31
- $result = array_search('summary',(array)$line);
31
+ $result = array_search('りんご',(array)$line);
32
32
 
33
33
  var_dump($result);
34
34
 

2

ループしていないとの指摘があったため

2020/01/03 04:59

投稿

2525mi
2525mi

スコア8

test CHANGED
File without changes
test CHANGED
@@ -26,11 +26,13 @@
26
26
 
27
27
  foreach($data as $line){
28
28
 
29
+ for($i = 0; $i < count($data); $i++){
30
+
29
- $result = array_search('りんご',(array)$line);
31
+ $result = array_search('summary',(array)$line);
30
32
 
31
33
  var_dump($result);
32
34
 
33
- }
35
+ }}
34
36
 
35
37
  fclose($handle);
36
38
 

1

他のコードを試したため

2020/01/03 04:11

投稿

2525mi
2525mi

スコア8

test CHANGED
File without changes
test CHANGED
@@ -10,17 +10,11 @@
10
10
 
11
11
 
12
12
 
13
- のように入っています。例えば「りんご」と選択した時に、「りんご,100,青森,赤」「りんご,90,福島,赤」というように表示させたいです。
13
+ のように入っています。例えばプルダウンメニューで「りんご」と選択した時に、「りんご,100,青森,赤」「りんご,90,福島,赤」というように表示させたいです。
14
14
 
15
15
 
16
16
 
17
17
  ```PHP
18
-
19
- if(isset($_POST['apple'])){
20
-
21
- $search = '/りんご/';
22
-
23
- }
24
18
 
25
19
 
26
20
 
@@ -30,13 +24,13 @@
30
24
 
31
25
  $data = fgetcsv($handle, 1000,",",'"');
32
26
 
33
- if(preg_match($search, $data, $matches) != 0){
27
+ foreach($data as $line){
34
28
 
29
+ $result = array_search('りんご',(array)$line);
30
+
35
- echo $data;
31
+ var_dump($result);
36
32
 
37
33
  }
38
-
39
-
40
34
 
41
35
  fclose($handle);
42
36
 
@@ -44,4 +38,4 @@
44
38
 
45
39
 
46
40
 
47
- 上記のようにコードを書いたところ、 preg_match() expects parameter 2 to be string, array given in~と出てしい、うま表示されませ。csvデータを検索し、該当した行全体を表示するにはどうすればいでしょうか?
41
+ 上記のようにコードを書いたところ、 bool(false)複数出ます。その数は恐ら「りご」に該当する数なのですが、データの中身を表示させたいで。ご教授いただければいです。