ショボ短歌会

下記のデータがあったときに、点数の低い人だけを表示するプログラムを作りたいのです。

■データ
<?php
$data[] = array("kamoku" => "国語", "value" => "80", "name" => "島田","class"=>"5組");
$data[] = array("kamoku" => "算数", "value" => "98", "name" => "山田","class"=>"4組");
$data[] = array("kamoku" => "国語", "value" => "70", "name" => "島田","class"=>"5組");
$data[] = array("kamoku" => "理科", "value" => "10", "name" => "鈴木","class"=>"2組");
$data[] = array("kamoku" => "国語", "value" => "68", "name" => "島田","class"=>"5組");
$data[] = array("kamoku" => "理科", "value" => "35", "name" => "斉藤","class"=>"2組");
$data[] = array("kamoku" => "国語", "value" => "18", "name" => "鈴木","class"=>"2組");
$data[] = array("kamoku" => "理科", "value" => "90", "name" => "島田","class"=>"5組");
?>

■結果(一番低い人だけを表示)
  国語 18点 鈴木
  算数 98点 山田
  理科 10点 鈴木

どのようにソートすればよろしいでしょうか?
教えてくださいますようお願いします。

A 回答 (1件)

たとえばこんな感じ?


<?php
$data[] = array("kamoku" => "国語", "value" => "80", "name" => "島田","class"=>"5組");
$data[] = array("kamoku" => "算数", "value" => "98", "name" => "山田","class"=>"4組");
$data[] = array("kamoku" => "国語", "value" => "70", "name" => "島田","class"=>"5組");
$data[] = array("kamoku" => "理科", "value" => "10", "name" => "鈴木","class"=>"2組");
$data[] = array("kamoku" => "国語", "value" => "68", "name" => "島田","class"=>"5組");
$data[] = array("kamoku" => "理科", "value" => "35", "name" => "斉藤","class"=>"2組");
$data[] = array("kamoku" => "国語", "value" => "18", "name" => "鈴木","class"=>"2組");
$data[] = array("kamoku" => "理科", "value" => "90", "name" => "島田","class"=>"5組");
foreach($data as $array){
if(!isset($min[$array["kamoku"]]) or $min[$array["kamoku"]]["value"]>$array["value"]) $min[$array["kamoku"]]=$array;
}
print "<pre>";
print_r($min);
print "</pre>";
?>
    • good
    • 0
この回答へのお礼

ありがとうございます!
思い通りの動作をいたしました。
今日一日考えてできなかったのでとても悔しい思いをしていまいした。
今夜は良い気持ちでぐっすり寝られます。
ありがとうございます。

お礼日時:2009/08/01 22:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!