- 2007-10-21
- php
個人的には、sortをするならusort()が好きです。 Perlをはじめ他の言語を使ったことがある人ならそう思うんじゃないかな。
<?php
$sales = array(
2 => array(
'title' => 'ほげほげ1',
'amount' => 3,
),
1 => array(
'title' => 'ほげほげ2',
'amount' => 2,
),
0 => array(
'title' => 'ほげほげ3',
'amount' => 5,
),
);
$cmp = create_function('$a, $b', 'return $a["amount"] - $b["amount"];');
usort($sales, $cmp);
var_dump($sales);
?>
複数条件でソートする場合は、他の言語のように値を返すor演算子があれば
'return $a["amount"] - $b["amount"] || strcmp($a["title"], $b["title"]);'
とか書けるんだけど。せいぜいこんな感じか。
$cmp = create_function('$a, $b', 'return ($c = $a["amount"] - $b["amount"]) ? $c : strcmp($a["title"], $b["title"]);');