回答編集履歴
5
加筆修正
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
加筆修正
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
加筆修正
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
見直し
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
見直し
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
|
-
|
1
|
+
(回答内容を見直します)
|
18
|
-
|
19
|
-
```
|