-1
我使用PHP进行编码并拥有多维数组。我想排序我的数组。最重要的标准是总积分。第二个标准是名称。按照几个标准对PHP排序数组
换句话说,阵列应该被排序这种方式:
第一通过[信息] [总],通过[信息] [名称]降序
第二,上行
Array (
[183] => Array (
[3] => Array (
[1] => Array()
)
[1] => Array (
[8] => Array()
)
[info] => Array (
[name] => Doe John /* 2nd criteria */
[total] => 4800 /* 1st criteria */
)
)
[380] => Array (
[4] => Array (
[6] => Array()
)
[info] => Array (
[name] => Davis Ben /* 2nd criteria */
[total] => 14500 /* 1st criteria */
)
[2] => Array (
[5] => Array()
)
)
)
所以,结果应该是这样的:
Array (
[380] => Array (
[4] => Array (
[6] => Array()
)
[info] => Array (
[name] => Davis Ben
[total] => 14500
)
[2] => Array (
[5] => Array()
)
)
[183] => Array (
[3] => Array (
[1] => Array()
)
[1] => Array (
[8] => Array()
)
[info] => Array (
[name] => Doe John
[total] => 4800
)
)
)
我已经试过这样:
foreach ($array as &$item)
{
uasort($item, function ($a, $b)
{
if ($a['total'] == $b['total']
{
return $b['name'] - $a['name'];
}
else
{
return $b['total'] - $a['total'];
}
});
}
我也尝试过这一点,但它并不能帮助:
foreach ($array as &$item)
{
uasort($item, function ($a, $b)
{
if ($a['info']['total'] == $b['info']['total'])
{
return $b['info']['name'] - $a['info']['name'];
}
else
{
return $b['info']['total'] - $a['info']['total'];
}
});
}
* “我用PHP编码” * - 你能证明呢?我只能看到'var_dump()'的一些输出,以及有人为你写代码的无声请求。 – axiac
你似乎有很多空阵列,你为什么不过滤它们?然后你可以用'usort()'http://php.net/manual/en/function.usort.php和你自己的回调函数按照这些标准进行排序。 – Qirel
@axiac我已经用PHP完成了这个数组,并且从MySQL数据库中插入了数据,但我无法对数组进行排序。有空阵列,因为这只是一个例子。 – xms