我有一个数组,如下所示:
$myArray(
'totals' => array(
Entity'Total,
Entity'Total
...
)
'subtotals' => array(
Entity'Total,
Entity'Total
...
)
)
我想知道如何根据Total类对象的字段对对象数组的总计和小计进行排序。
我尝试了一些与usort有关的东西,但没有成功。这将返回未排序对象的重复数组。
uasort($myArray, function($a, $b){
foreach($a as $adata) {
foreach($b as $bdata){
if ($adata->getmaxTotal() > $bdata->getmaxTotal())
return 1;
else
return 0;
}
}
});
array_multsort可以同时对多个数组进行排序。但没有带回调的模拟。所以你需要创建一个新的数组,这个数组可以用这个函数排序。
for ($i = 0; $i < 10; $i++)
{
$a[$i] = new stdClass();
$a[$i]->id = $i;
$a[$i]->property = $i % 4;
}
for ($i = 0; $i < 10; $i++)
{
$b[$i] = new stdClass();
$b[$i]->id = $i;
$b[$i]->property = $i % 3;
}
// creating temporary array
$c = array_map(function ($item)
{ return $item->property; }, $a);
array_multisort($c, $a, $b);
var_dump($a, $b);