激凹みから立ち直る方法

以下のような配列arrdataがある時、値cの降順で並べ替えたいのですがどうすればよいでしょうか?

function sort1(?, ?){

 ???}
}

uasort($arrdata,sort1);


Array
(
 [0] => Array
  (
   [a] => 1
   [b] => 東京
   [c] => 75
  )

 [1] => Array
  (
   [a] => 4
   [b] => 京都
   [c] => 50
  )

 [2] => Array
  (
   [a] => 2
   [b] => 名古屋
   [c] => 22
  )

 [3] => Array
  (
   [a] => 3
   [b] => 奈良
   [c] => 22
  )

)

A 回答 (2件)

マニュアルのとおりに書けばいいだけだと思いますが・・・



http://jp2.php.net/manual/ja/function.uasort.php

<?php
$arrdata = array(
0=>array('a'=>1, 'b'=>'東京', 'c'=>75),
1=>array('a'=>4, 'b'=>'京都', 'c'=>50),
2=>array('a'=>2, 'b'=>'名古屋', 'c'=>22)
);
print "<pre>";
var_dump($arrdata);
print "</pre>";
print "<hr />";
uasort($arrdata, 'sort1');
print "<pre>";
var_dump($arrdata);
print "</pre>";


function sort1($arg1, $arg2) {
if ($arg1['c'] == $arg2['c']) { return 0; }
return ($arg1['c'] < $arg2['c']) ? -1 : 1;
}
    • good
    • 0
この回答へのお礼

回答ありがとうございましたー

お礼日時:2012/12/02 22:01

$arrdata= array(array('a]'=> 1,'b' => '東京','c' => 75), ・・・・・ );


$SortKey= array();
foreach ($arrdata as $TmpKey => $TmpVal) {
$SortKey[$TmpKey] = $TmpVal['c'];
}
array_multisort($SortKey, SORT_DESC, $arrdata);
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
array_multisortでもいけるんですね。
参考になりましたー

お礼日時:2012/12/02 22:01

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


おすすめ情報