△▲ WebProg 初心者の質問 Part13 ▼▽

このエントリーをはてなブックマークに追加
368途中できれちゃいました。
で読み込んだ行を並び替えたいのですが、

ログファイル分割

投票数多い順にソート

再度結合させて並び替え

分割して表示

とするしかないのでしょうか?
どうも回りくどいような気がするのですが。。。。
369nobodyさん:2006/03/17(金) 02:39:20 ID:???
Perlなら
@array = { (split ('<>', $b) )[3] <=> (split ('<>', $a) )[3] } @array;
だけど、PHPはどうだろ?usortしらべてみてちょ。
370nobodyさん:2006/03/17(金) 02:39:36 ID:???
配列?
371途中できれちゃいました。:2006/03/17(金) 02:50:10 ID:ypCQkPkZ
>>369
了解しました!

↓ソースは現在こんな感じなんです

$logfile = "blog.dat";
$lines = file($logfile);

echo "<table border='1' bordercolor='#3366ff' cellspacing='0' cellpadding='2'>
<tr align=center><td>順位</td><td>紹介</td><td>本日の投票数</td><td>昨日の投票数</td></tr>";

for($h=0;$h<count($lines);$h++){
$tmplines = file("./tmp/blogtable.html");
list($id,$url,$name,$intro,$d_access,$w_access) = explode("<>",$lines[$h]);

for($i=0;$i<count($lines);$i++){
$tmplines[$i] = str_replace("&num",$count,$tmplines[$i]);
$tmplines[$i] = str_replace("&url",$url,$tmplines[$i]);
$tmplines[$i] = str_replace("&name",$name,$tmplines[$i]);
$tmplines[$i] = str_replace("&intro",$intro,$tmplines[$i]);
$tmplines[$i] = str_replace("&d_access",$d_access,$tmplines[$i]);
$tmplines[$i] = str_replace("&w_access",$w_access,$tmplines[$i]);
echo $tmplines[$i];
}
}
echo "</table>";
372nobodyさん:2006/03/17(金) 07:36:09 ID:???
>>371
<?php
function hoge($a, $b) {
list (,,,$aa,) = explode("<>", $a);
list (,,,$bb,) = explode("<>", $b);
return ($bb - $aa);
}
$list[] = "aa<>bb<>cc<>5<>6";
$list[] = "dd<>ee<>ff<>3<>8";
$list[] = "gg<>hh<>ii<>10<>1";
echo "<pre>\n";
print_r($list);
echo "\n";
usort($list, "hoge");
print_r($list);
echo "</pre>";
?>