-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