我有一个巨大的文本文件结构如下:
email 1
email 14
email 1
email 244
email 232
email 23
email 1
我正在尝试将文本文件拉入数组,然后我可以删除所有没有第一个的电子邮件。现在我限制在前20个,所有这些都有数字1,但我在我的数组中唯一得到的是数字1.当我吐出行中的项目数量时,它说1。
$file = "list.txt";// Your Temp Uploaded file
$cols = array();
ini_set('auto_detect_line_endings', true);
$fh = fopen($file, 'r');
$i = 0;
while ($line = fgetcsv($fh, 1000, "\t") !== false) {
$cols[] = $line;
if($i == 19) { break; }
$i++;
}
echo "<pre>";
print_r($cols);
echo "</pre>";
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 1
[6] => 1
[7] => 1
[8] => 1
[9] => 1
[10] => 1
[11] => 1
[12] => 1
[13] => 1
[14] => 1
[15] => 1
[16] => 1
[17] => 1
[18] => 1
[19] => 1
)
我尝试将\t
更改为\n
,但这并没有改变结果。如果我可以一步完成所有这一切,那么请检查行中的第二项,如果是一项,则将第一项(电子邮件)添加到数组中。否则不要。在这一点上,我将采取我能得到的!有什么想法或建议吗?
我现在正在获取数组中的项目,但它将列合并为一个数组项:
Array
(
[0] => Array
(
[0] => EMAIL 1
)
)
我有没有办法将列吐出成单独的键?所以:
Array
(
[0] => Array
(
[0] => EMAIL
[1] => 1
)
)
答案 0 :(得分:7)
您需要使用更多( )
while ($line = fgetcsv($fh, 1000, "\t") !== false) {
应该是
while (($line = fgetcsv($fh, 1000, "\t")) !== false) {