こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

二次元配列のソート方法がわかりません

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

■データ
<?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点 鈴木

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

投稿日時 - 2009-08-01 13:40:48

QNo.5173016

困ってます

質問者が選んだベストアンサー

たとえばこんな感じ?
<?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>";
?>

投稿日時 - 2009-08-01 18:36:49

お礼

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

投稿日時 - 2009-08-01 22:04:20

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問