【发布时间】:2017-11-02 14:13:46
【问题描述】:
如何按两个(一个)不同的值对数组进行排序?
所以我有一个这样的数组:
array(
array(
'id' => 10,
'total' => 38,
'entry' => 400
),
array(
'id' => 4,
'total' => 34,
'entry' => 3100
),
array(
'id' => 2,
'total' => 34,
'entry' => 3150
),
array(
'id' => 8,
'total' => 34,
'entry' => 2980
),
);
数组已经按键total 排序,但它们在total 中都有相同的值。所以我需要通过entry 来排序最接近3000 的人。
编辑
数组应首先按total 排序,然后按entry 排序,因为entry 只是在那里,所以我可以区分谁是最好的。
所以数组应该是这样的:
array(
array(
'id' => 10,
'total' => 38,
'entry' => 400
),
array(
'id' => 8,
'total' => 34,
'entry' => 2980
),
array(
'id' => 4,
'total' => 34,
'entry' => 3100
),
array(
'id' => 2,
'total' => 34,
'entry' => 3150
)
);
【问题讨论】:
-
usort 比较 abs($v1-3000) 和 abs($v2-3000)
-
@splash58 你能举个例子吗?