回答編集履歴

5

加筆修正

2020/04/16 10:28

投稿

退会済みユーザー
test CHANGED
@@ -12,13 +12,23 @@
12
12
 
13
13
 
14
14
 
15
- 乱暴なやり方なら、[implode](https://www.php.net/manual/ja/function.implode.php)を使ってカンマ区切り文字列を作るのでが、
15
+ 乱暴なやり方なら、[implode](https://www.php.net/manual/ja/function.implode.php)を使ってカンマ区切り文字列を作ったりしま
16
16
 
17
- そもそもカンマの文字が含まれていらどうするのか、など、
17
+ とえば
18
18
 
19
+ ```php
20
+
21
+ fwrite($fp, '"' . $value[0] . '","' . $value[1] . '","' . $value[2] . '"' . PHP_EOL);
22
+
23
+ ```
24
+
25
+ とか。
26
+
19
- 正しい扱いをするためには自前加工せず用意されている関数ど駆使るのが良いかと
27
+ ダブルクォーテーションマークで括ことで、とえばExcel読み込んでも大丈夫気がします。
20
28
 
21
29
 
30
+
31
+ しかし、普通なら、自力の文字列連結でやらずに行います。
22
32
 
23
33
  [fputcsv](https://www.php.net/manual/ja/function.fputcsv.php)を使うやり方もありますし、
24
34
 

4

加筆修正

2020/04/16 10:28

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,14 @@
1
1
  `$data = fgetcsv($temp, 0, ",")`の箇所で、
2
2
 
3
- $dataは配列になっているのが、実行するだけでわかりますよね
3
+ $dataは配列になっています。
4
+
5
+ そして、`$csv[] = $data;`で$csvに格納されているので、$csvは配列の配列になっています。
6
+
7
+ その$csvを
8
+
9
+ `foreach ($csv as $value) {` するのだから、$valueは配列です。
10
+
11
+ $dataに受け取ったときのままの配列です。
4
12
 
5
13
 
6
14
 

3

加筆修正

2020/04/16 10:24

投稿

退会済みユーザー
test CHANGED
@@ -4,8 +4,14 @@
4
4
 
5
5
 
6
6
 
7
- 乱暴なやり方なら、[implode](https://www.php.net/manual/ja/function.implode.php)を使ってカンマ区切文字列を作るのですが、
7
+ 乱暴なやり方なら、[implode](https://www.php.net/manual/ja/function.implode.php)を使ってカンマ区切文字列を作るのですが、
8
8
 
9
- そもそもカンマの文字が含まれていたらどうするのかなど、
9
+ そもそもカンマの文字が含まれていたらどうするのかなど、
10
10
 
11
11
  正しい扱いをするためには自前で加工せず用意されている関数など駆使するのが良いかと。
12
+
13
+
14
+
15
+ [fputcsv](https://www.php.net/manual/ja/function.fputcsv.php)を使うやり方もありますし、
16
+
17
+ [SplFileObject クラス](https://www.php.net/manual/ja/class.splfileobject.php)のfputcsvメソッドを使うやり方もあります。

2

見直し

2020/04/16 06:25

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,11 @@
1
+ `$data = fgetcsv($temp, 0, ",")`の箇所で、
2
+
3
+ $dataは配列になっているのが、実行するだけでわかりますよね。
4
+
5
+
6
+
7
+ 乱暴なやり方なら、[implode](https://www.php.net/manual/ja/function.implode.php)を使ってカンマ区切る文字列を作るのですが、
8
+
1
- (回答内容を見直します
9
+ そもそもカンマの文字が含れていたらどうるのかなど、
10
+
11
+ 正しい扱いをするためには自前で加工せず用意されている関数など駆使するのが良いかと。

1

見直し

2020/04/16 06:21

投稿

退会済みユーザー
test CHANGED
@@ -1,19 +1 @@
1
- ```php
2
-
3
- $file = 'datas.csv';
4
-
5
- $data = file_get_contents($file); // <--- ここで$dataはarrayに
6
-
7
- $data = mb_convert_encoding($data, 'UTF-8', 'sjis-win');
8
-
9
- $temp = tmpfile();
10
-
11
- $csv = array();
12
-
13
-
14
-
15
- fwrite($temp, $data); // <--- arrayを書き込もうとしている
16
-
17
- rewind($temp);
1
+ (回答内容を見直します)
18
-
19
- ```