Home > php > sortするならusort

sortするならusort

  • 2007-10-21
  • php

個人的には、sortをするならusort()が好きです。 Perlをはじめ他の言語を使ったことがある人ならそう思うんじゃないかな。

PHPのarray_multisort関数が激便利だったので紹介 : akiyan.com

<?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"]);');

Writeback:0

Comment Form

writeback message: Ready to post a comment.

TrackBack ping me at
http://www.mono-space.net/blog/php/e071021_usort.trackback

Page Top