PHP การดึงค่าข้อมูลใน Textfile ที่ซ้ำกันมาแสดงเพียงครั้งเดียว


    ตัวอย่างข้อมูลที่เก็บเป็น Textfile

    

    a

    b

    c

    d

    b

    e

    a

    

    อยากได้ผลลัพธ์ ที่ได้

    

    a

    b

    c

    d

    e

    

    ประมาณนี้นะครับ


    

    

    __________________________________________________________

    ผมเคยค้นหาจาก Internet ที่ไม่ได้เป็น Textfile

    

    <?php



    $vararr = array("aaa","bbb","ccc","aaa","bbb","ccc");



    $duparray = array_unique($vararr);

    foreach ($duparray as $index => $dup)

    {

    print "$dup <br>";

    }



    ?>

    

    ผลลัพธ์

    aaa

    bbb

    ccc


    __________________________________________________________

    

    แต่ถ้าเป็นการดึงจาก Textfile ต้องเขียนคำสั่งยังไงครับ


13 มิ.ย. 2554 3 3,094


    <?php

      $vararr = file('path/to/file');

    ?>


    คำสั่ง file() จะอ่าน textfile ให้ผลลัพท์ในรูปแอเรย์ ในแต่ละบรรทัดครับ

    

    ซึ่งผลลัพท์จะได้เหมือนที่ต้องการเลยครับ ซึ่งจะสามารถเอาไปใช้ต่อได้ทันที

     


#1

ผมเก็บข้อมูลใน  textfile  ประมาณนี้ครับ



taff.txt



00000251 110401 0705     12

00000431 110401 0714     12

00000251 110401 1607     12

00000431 110401 1658     12



หมายเหตุ

รหัสบุคคล      วัน     เวลา  เครื่องที่





แล้วทีนี้จะเช็ค ว่ารหัสบุคคลและวันเดียวกัน   ให้แสดงเพียงแถวเดียว แล้วดึงข้อมูลมาแสดงรูปแบบนี้ครับ

ตัวอย่าง

รหัสบุคคล       วัน       เข้า     ออก   เครื่อง



00000251  110401  0705  1607  12

00000431  110401  0714  1658  12





รบกวนช่วยดูผมหน่อยนะครับ  ผมหาวิธีแล้วไม่ได้เลย ยอม!





จากสคริปที่ประยุกต์ได้แค่นี้ครับ

$strFileName = "data/taff.txt";

$objFopen = fopen($strFileName, 'r');

if ($objFopen) {

    while (!feof($objFopen)) {

        $file = fgets($objFopen, 4096);

        echo $file."<br>";

    }

    fclose($objFopen);

}

ไม่รู้ว่าจะวนเช็คข้อมูลให้ออกมารูปแบบนี้ยังไงครับ
#2

ประมาณว่าตรวจสอบข้อมูลที่ซ้ำ คือ  รหัสบุคคล และ  วัน ครับและให้ข้อมูลแสดงแบบ



textfile

00000251 110401 0705     12

00000431 110401 0714     12

00000251 110401 1607     12

00000431 110401 1658     12





เป็นผลลัพธ์ เป็นประมาณนี้ครับ

00000251  110401  0705  1607  12

00000431  110401  0714  1658  12





จะบอกวิธีการตรวจสอบ และนำมาแสดงผลยังไงครับ

ขอความช่วยเหลือจริงๆครับ



#3
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^