この配列があれば
$inventory = array(
array("type"=>"fruit", "price"=>3.50),
array("type"=>"milk", "price"=>2.90),
array("type"=>"pork", "price"=>5.43),
);
私は$inventory
'の要素を価格でソートして得たいと思います。
$inventory = array(
array("type"=>"pork", "price"=>5.43),
array("type"=>"fruit", "price"=>3.50),
array("type"=>"milk", "price"=>2.90),
);
どのようにすればよいでしょうか?
$inventory =
array(array("type"=>"fruit", "price"=>3.50),
array("type"=>"milk", "price"=>2.90),
array("type"=>"pork", "price"=>5.43),
);
function pricesort($a, $b) {
$a = $a['price'];
$b = $b['price'];
if ($a == $b)
return 0;
return ($a > $b) ? -1 : 1;
}
usort($inventory, "pricesort");
// uksort($inventory, "pricesort");
print("first: ".$inventory[0]['type']."\n\n");
// for usort(): prints milk (item with lowest price)
// for uksort(): prints fruit (item with key 0 in the original $inventory)
// foreach prints the same for usort and uksort.
foreach($inventory as $i){
print($i['type'].": ".$i['price']."\n");
}
を出力しています。
first: pork
pork: 5.43
fruit: 3.5
milk: 2.9
を試してみてください。
asort($array_to_sort, SORT_NUMERIC);
参考までにこちらをご覧ください。 http://php.net/manual/en/function.asort.php
様々なソートフラグについてはこちらをご覧ください。 http://www.php.net/manual/en/function.sort.php