4

我有一个巨大的文本文件,结构如下:

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
    )
)
4

1 回答 1

8

您需要用更多包装您的 while 语句( )

while ($line = fgetcsv($fh, 1000, "\t") !== false) {

应该

while (($line = fgetcsv($fh, 1000, "\t")) !== false) {
于 2013-10-18T14:57:22.920 回答