cari

Rumah  >  Soal Jawab  >  teks badan

Isih elemen tatasusunan PHP dalam gelung foreach

Saya menggunakan PHP untuk mengakses beberapa data yang terkandung dalam fail teks. Berikut ialah contoh fail teks (myfile.txt) - setiap baris mempunyai tiga medan, dipisahkan dengan ||:

4e84||some text||category A  
f17b||words words||category B  
f7ac||some more text here||category B  
8683||text text||category C  
b010||more text||category A  
fcc4||more text||category B  
we47||more text||category C  
08ml||more text||category A

Ini ialah kod PHP yang saya gunakan untuk memaparkan kandungan fail txt dalam jadual HTML ringkas. Saya mengakses fail dan gelung melalui setiap baris untuk mengekstrak tiga bahagian:

<?php
$lines = file("myfile.txt");
?>
<table>
 <thead>
  <tr>
   <th>ID</th>
   <th>TEXT</th>
   <th>CATEGORY</th>
  </tr>
 </thead>
 <tbody>
<?php
foreach ($lines as $line) {
list($id,$text,$category) = explode('||', $line);
echo '<tr>';
echo '<td>'.$id.'</td>';
echo '<td>'.$text.'</td>';
echo '<td>'.$category.'</td>';
echo '</tr>';
}
?>
 </tbody>
</table>

Saya perlu mengisih baris berdasarkan medan ketiga (kategori) supaya entri untuk kategori A,B,C dipaparkan.

Saya cuba menggunakan arahan sort() di dalam gelung foreach tetapi tidak berjaya. Ada idea?

P粉567281015P粉567281015269 hari yang lalu431

membalas semua(2)saya akan balas

  • P粉373596828

    P粉3735968282024-04-01 09:13:55

    Anda boleh menggunakan kaedah berikut:

    $split_lines = [];
    
    // first - split lines and put them into array
    foreach ($lines as $line) {
        $split_lines[] = explode('||', $line);
    }
    
    // sort array by function
    usort($split_lines, fn($a,$b)=>$a[2]<=>$b[2]);
        
    // show array as table
    foreach ($split_lines as $line) {
        echo '';
        echo ''.$line[0].'';
        echo ''.$line[1].'';
        echo ''.$line[2].'';
        echo '' . PHP_EOL;
    }

    Jalankan PHP dalam talian

    balas
    0
  • P粉897881626

    P粉8978816262024-04-01 00:24:30

    Anda boleh melaksanakannya menggunakan hanya dua untuk gelung.

    
    ';
        echo '';
        echo '';
        echo '';
        echo '';
    }
    
    ?>
     
    ID TEXT CATEGORY
    '.$id.''.$text.''.$category.'

    balas
    0
  • Batalbalas