简体   繁体   English

我正在从php循环中获取双输出

[英]I am getting double output from a php loop

My data is outputting twice and I am not to sure why. 我的数据输出了两次,我不确定为什么。 It should be one fname and lname per line. 每行应该是一个fname和lname。

<?php

$row = 1;
if (($handle = fopen("nameList1.txt", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, "    ")) !== FALSE) {
        $num = count($data);
        //$result = explode($data);
        echo "<br />\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
                //echo $data[$c];
                echo $data[0];
                echo " ";
                echo $data[1];
        }
    }
    fclose($handle);
}

** * ** ** * ** output 输出 ** * ** * ** * ** ** * ** * ** * **

Nancy AlvordNancy Alvord
Lucy HadacLucy Hadac
Laura LundgrenLaura Lundgren
Judy PigottJudy Pigott
Thomas BayleyThomas Bayley
Barbara BrownBarbara Brown
Aaron DixonAaron Dixon
Jennifer HadlockJennifer Hadlock
Molly AdolfsonMolly Adolfson
Susan AnsteadSusan Anstead
Shannon BraddockShannon Braddock
Isa D’ArleansIsa D’Arleans
Elizabeth DavisElizabeth Davis
William DonnellyWilliam Donnelly

try this 尝试这个

$row = 1;
if (($handle = fopen("nameList1.txt", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, "    ")) !== FALSE) {
    $num = count($data);
    //$result = explode($data);
    echo "<br />\n";
    $row++;
    echo $data[0];
    echo " ";
    echo $data[1];
}
fclose($handle);
}
for ($c=0; $c < $num; $c++) {
    echo $data[0] . " " . $data[1];
}

As you have 2 differents data per line (fname, lname) $num is always equal to 2. 由于每行有2个差异数据(fname,lname),$ num始终等于2。

So twice, you will print out $data[0] & $data[1] ;) 如此两次,您将打印出$ data [0]&$ data [1];)

You juste have to do : 您只需要做:

echo $data[0];
echo $data[0];

Or if you absolutely want to use the for statement : 或者,如果您绝对要使用for语句:

for ($c=0; $c < $num; $c++) {
    echo $data[$c] . " ";
}

您将两次获取所有csv字段,因为,while循环内的forloop从0到开始,应为1或0到

try this: 尝试这个:

$file = $_FILES[csv][tmp_name]; 
    $handle = fopen($file,"r"); 

    //loop through the csv file and insert into database 
    do { 
        if ($data[0]) { 
            $record['contact_email'] = $data[2];
            $record['subject'] = $_REQUEST['subject'];
            $record['message'] = $_REQUEST['message'];
            $record['status'] = 0;

            $oAdminEmail->insertQueEmail($record);
            } 
    } while ($data = fgetcsv($handle,1000,",","'")); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM