A-AA+then

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

2,936

    ตัวอย่างข้อมูลที่เก็บเป็น 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 ต้องเขียนคำสั่งยังไงครับ

3 ความคิดเห็น

    <?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
^