array_multisort 在函数中使用.

class test{
function test2()
{
$data[“b”] = array(‘volume’ => 67, ‘edition’ => 2,’good’=>”1″);
$data[“c”] = array(‘volume’ => 86, ‘edition’ => 1,’good’=>”2″);
$data[“d”] = array(‘volume’ => 85, ‘edition’ => 6,’good’=>”7″);
$data[“a”] = array(‘volume’ => 98, ‘edition’ => 2,’good’=>”4″);
$data[“f”] = array(‘volume’ => 86, ‘edition’ => 6,’good’=>”5″);
$data[“g”] = array(‘volume’ => 67, ‘edition’ => 7,’good’=>”8″);

$this->sortbytime($data);

}
function sortbytime(&$data)
{
   if(!$data)
   {
    return;
   }
   $t = $data;
   print_r($data);
   foreach ($t as $key => $row) {
    $sdffdas[$key] = $row[‘good’];
   }
   array_multisort($sdffdas,SORT_DESC, $data);
   print_r($data);
}
}

$t = new test();
$t->test2();

?>
php4.48并没有做到排序.

php5.x做到了排序.

估计是array_multisort的一个bug.

解决之后的代码.

class test{
function test2()
{
$data[“b”] = array(‘volume’ => 67, ‘edition’ => 2,’good’=>”1″);
$data[“c”] = array(‘volume’ => 86, ‘edition’ => 1,’good’=>”2″);
$data[“d”] = array(‘volume’ => 85, ‘edition’ => 6,’good’=>”7″);
$data[“a”] = array(‘volume’ => 98, ‘edition’ => 2,’good’=>”4″);
$data[“f”] = array(‘volume’ => 86, ‘edition’ => 6,’good’=>”5″);
$data[“g”] = array(‘volume’ => 67, ‘edition’ => 7,’good’=>”8″);

$this->sortbytime($data);

}
function sortbytime($data)
{
   if(!$data)
   {
    return;
   }
   $t = $data;
   print_r($data);
   foreach ($t as $key => $row) {
    $sdffdas[$key] = $row[‘good’];
   }
   array_multisort($sdffdas,SORT_DESC, $data);
   print_r($data);

return $data;
}
}

$t = new test();
$t->test2();