回答編集履歴

1

intvalを追加

2016/12/31 07:52

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -55,3 +55,125 @@
55
55
  */
56
56
 
57
57
  ```
58
+
59
+
60
+
61
+ -------
62
+
63
+
64
+
65
+ 【追記】
66
+
67
+
68
+
69
+ `intval`を`$rows`の各要素に適用すれば文字列が整数にキャストされ,そのタイミングで空文字列から`0`への変換が発生します。
70
+
71
+
72
+
73
+ ```php
74
+
75
+
76
+
77
+ // ファイル名 (ここではオンメモリの擬似ファイルとします)
78
+
79
+ $filename = 'data:text/plain,' . urlencode("3 \"6\" 10\n1 \"\" 7\n");
80
+
81
+
82
+
83
+ $fp = fopen($filename, 'r');
84
+
85
+ while (false !== $before = fgetcsv($fp, 0, ' ')) {
86
+
87
+ $after = array_map('intval', $before);
88
+
89
+ var_dump(compact('before', 'after'));
90
+
91
+ }
92
+
93
+
94
+
95
+ /*
96
+
97
+ array(2) {
98
+
99
+ ["before"]=>
100
+
101
+ array(3) {
102
+
103
+ [0]=>
104
+
105
+ string(1) "3"
106
+
107
+ [1]=>
108
+
109
+ string(1) "6"
110
+
111
+ [2]=>
112
+
113
+ string(2) "10"
114
+
115
+ }
116
+
117
+ ["after"]=>
118
+
119
+ array(3) {
120
+
121
+ [0]=>
122
+
123
+ int(3)
124
+
125
+ [1]=>
126
+
127
+ int(6)
128
+
129
+ [2]=>
130
+
131
+ int(10)
132
+
133
+ }
134
+
135
+ }
136
+
137
+ array(2) {
138
+
139
+ ["before"]=>
140
+
141
+ array(3) {
142
+
143
+ [0]=>
144
+
145
+ string(1) "1"
146
+
147
+ [1]=>
148
+
149
+ string(0) ""
150
+
151
+ [2]=>
152
+
153
+ string(1) "7"
154
+
155
+ }
156
+
157
+ ["after"]=>
158
+
159
+ array(3) {
160
+
161
+ [0]=>
162
+
163
+ int(1)
164
+
165
+ [1]=>
166
+
167
+ int(0)
168
+
169
+ [2]=>
170
+
171
+ int(7)
172
+
173
+ }
174
+
175
+ }
176
+
177
+ */
178
+
179
+ ```