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();