0

フラットファイルからの読み取り... DESCENDING 日付で並べ替えられた配列要素を表示する必要があります (= 最新の日付が最初に表示されます)。

わかりません...要素[1]でデータを単純に並べ替える方法はありますか、それともこのデータを2番目の配列に入れてからその配列を並べ替える必要がありますか...または??

次に...印刷セクションを含めてください... データを出力するために必要な変数。ありがとう。

(*はい、「スタック」でこの例をいくつか見ました。ただし、「比較」を使用すると、値を正しく出力できませんでした。)

生データ:
はい|2012-12-12|ジム なし
はい|2013-06-04|ジョー スミス
いいえ|2013-04-21|ジェーン ドウ

ソート済みデータ:
はい|2013-06-04|ジョー・スミス
いいえ|2013-04-21|ジェーン・ドウ
はい|2012-12-12|ジム なし

while (!feof($file) ) {
    $lines = fgets($file);
    $ele = explode('|', $lines);

    $db_display = $ele[0];
    $db_date = $ele[1];
    $db_name = $ele[2];

    $db_name = substr_replace($db_name,"",-1); // trim last char

    echo '<td>'.$db_name.'</td><td>'.$db_date.'</td>';
}
4

2 に答える 2

1

これでそこにたどり着くはずです...

ファイル名 $infile から取得していると仮定すると

$fp = fopen($infile, "w");
$data = array();
while ($rec = fgetcsv($fp, 2048, "|")){
         $data[] = $rec;
}


usort($data, function ($a, $b){
     // if you want to reverse the sort swap a for b
     return strtotime($b[1]) - strtotime($a[1]);
});



foreach($data as $v){
   echo implode("|", $v)."\n";
}

標準出力への出力 ... 同じデータを fopen/fputcsv で簡単に出力できます。

于 2013-06-07T04:09:20.520 に答える
0
usort($array, function($x, $y) { 
    return strcmp($y[1], $x[1]);
});
于 2013-06-07T04:09:23.137 に答える