簡體   English   中英

反向按特定列對php中的每個循環進行排序

[英]Reverse Sort by particular column for each loop in php

這是csv文件:

40405,Vodafone,2
405806,Aircel,1
41303,Etisalat,1
45201,MobilFone,3
51010,Telkomsel,1
63903,Zain,1
63905,yu,2
64005,Airtel,1

我嘗試使用rsort,ksort,asort,但無法根據該列進行排序。 在php中使用for each循環:我正在嘗試按照相反的順序(降序)按照第三列對整個數據進行排序,

$f = fopen("file.csv", "r");

while (($line = fgetcsv($f)) !== false)
{

        echo "<tr id='trdata'>";
        foreach ($line as $cell)
        {
                echo "<td>" . htmlspecialchars($cell). "</td>";
        }
        echo "</tr>\n";

}

謝謝。

$f = fopen("file.csv", "r");

$fileData = array();
while (($line = fgetcsv($f)) !== false) {
    $fileData[] = $line;
}

echo arrayAsTable($fileData) . "<br />";

usort($fileData, function($a, $b) {
    return $b[2] - $a[2];
});

echo arrayAsTable($fileData);

function arrayAsTable($array)
{
    $out = "<table>";
    foreach ($array as $line) {
        $out .= "<tr id='trdata'>";
        foreach ($line as $cell) {
            $out .= "<td>" . htmlspecialchars($cell) . "</td>";
        }
        $out .= "</tr>";

    }
    $out .= "</table>";
    return $out;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM