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

質問編集履歴

3

追加で判明したことを追記

2021/01/28 02:28

投稿

k.t.est
k.t.est

スコア49

title CHANGED
File without changes
body CHANGED
@@ -85,4 +85,39 @@
85
85
  3行目 : 300とちり|1000,ccc,.....
86
86
  4行目 : "4,000ぬるを|200",ddd,.....
87
87
 
88
+ ```
89
+
90
+ #追加で判明したこと
91
+ 試しに、A列の前に一列足してみたところ、2番目の行データからカンマが含まれているとforeach内の$row[0]内でダブルクォーテーションで囲まれることがわかりました。
92
+ 先頭行の場合は、カンマが含まれていてもダブルクォテーションでは囲まれませんでした。
93
+
94
+ 一方、テキストエディタで読み込んだ場合は、先頭行かどうかに関わらず、カンマがあるデータはダブルクォテーションで囲まれていました。
95
+
96
+ ####先頭行のセルデータにカンマがある場合
97
+ ```php
98
+
99
+ foreach ($objFile as $row){
100
+ var_dump($row);
101
+ exit();
102
+ /* $row[0]に1行分のデータがカンマ区切りで格納されている状態です。
103
+ * array(1) {
104
+ * [0] => string(xxx) "1,000いろは|12000,aaa,....."
105
+ * }
106
+ */
107
+ }
108
+
109
+ ```
110
+
111
+ 先頭行以外のセルデータ内にカンマがある場合
112
+ ```php
113
+
114
+ foreach ($objFile as $row){
115
+ var_dump($row);
116
+ exit();
117
+ /* 1,000いろは|12000がダブルクォーテーションで囲まれている。
118
+ * array(1) {
119
+ * [0] => string(xxx) "100番目,"1,000いろは|12000",aaa,....."
120
+ * }
121
+ */
122
+ }
88
123
  ```

2

csvデータをテキストエディタで読み込んだ場合の表示を追記

2021/01/28 02:28

投稿

k.t.est
k.t.est

スコア49

title CHANGED
File without changes
body CHANGED
@@ -72,4 +72,17 @@
72
72
  * }
73
73
  */
74
74
  }
75
+ ```
76
+
77
+ ---
78
+ ###csvデータをテキストエディタで読み込んだ場合
79
+
80
+ ```csv
81
+ //カンマが入っているセルデータにはダブルクォテーションが入っていました。
82
+
83
+ 1行目 : "1,000いろは|12000",aaa,.....
84
+ 2行目 : 2000にほへ|100,bbb,......
85
+ 3行目 : 300とちり|1000,ccc,.....
86
+ 4行目 : "4,000ぬるを|200",ddd,.....
87
+
75
88
  ```

1

$row[0]のデータを追記しました

2021/01/28 02:12

投稿

k.t.est
k.t.est

スコア49

title CHANGED
File without changes
body CHANGED
@@ -64,6 +64,12 @@
64
64
  $list = [];
65
65
  foreach ($objFile as $row){
66
66
  //Aセル内のカンマを削除したものを$listに格納したい
67
-
67
+ var_dump($row);
68
+ exit();
69
+ /* $row[0]に1行分のデータがカンマ区切りで格納されている状態です。
70
+ * array(1) {
71
+ * [0] => string(xxx) "1,000いろは|12000,aaa,....."
72
+ * }
73
+ */
68
74
  }
69
75
  ```