【发布时间】:2016-04-11 08:25:34
【问题描述】:
我想我会重写它以使其更加清晰,并希望消除混乱。
可以说我有几层办公室。我想按每个楼层的最低编号对这些办公室进行排序 使结果如下所示:
-------------------------
| floor | office | sort |
-------------------------
| 1 | 4 | 1 |
| 2 | 4 | 2 |
| 3 | 3 | 3 |
| 4 | 3 | 4 |
| 1 | 5 | 5 |
| 2 | 5 | 6 |
| 3 | 4 | 7 |
| 4 | 4 | 8 |
| 1 | 6 | 9 |
| 2 | 6 | 10 |
| 3 | 5 | 11 |
| 4 | 5 | 12 |
| 2 | 7 | 13 |
| 3 | 6 | 14 |
| 4 | 6 | 15 |
| 3 | 7 | 16 |
| 4 | 7 | 17 |
-------------------------
数组:
array (
0 => array (
'floor' => 1,
'office' => 4,
),
1 => array (
'floor' => 1,
'office' => 5,
),
2 => array (
'floor' => 1,
'office' => 6,
),
3 => array (
'floor' => 2,
'office' => 4,
),
4 => array (
'floor' => 2,
'office' => 5,
),
5 => array (
'floor' => 2,
'office' => 6,
),
6 => array (
'floor' => 2,
'office' => 7,
),
7 => array (
'floor' => 3,
'office' => 3,
),
8 => array (
'floor' => 3,
'office' => 4,
),
9 => array (
'floor' => 3,
'office' => 5,
),
10 => array (
'floor' => 3,
'office' => 6,
),
11 => array (
'floor' => 3,
'office' => 7,
),
12 => array (
'floor' => 4,
'office' => 3,
),
13 => array (
'floor' => 4,
'office' => 4,
),
14 => array (
'floor' => 4,
'office' => 5,
),
15 => array (
'floor' => 4,
'office' => 6,
),
16 => array (
'floor' => 4,
'office' => 7,
)
, )
我需要做的是一次遍历每一层,然后选择编号最低的办公室,然后再次从编号最低的楼层开始,直到筋疲力尽。
【问题讨论】:
-
你能发布一个
print_r而不是你的数组的var_dump吗?否则很难测试。 -
如果你想让测试变得容易,请使用 var_export()
-
我在上面添加了一个导出。因为我已经包含了 var_dump。
-
usort 是答案,但对逻辑不了解,很难理解您所追求的排序逻辑
-
我可以这样解释。在这个数组中,我们有 4 个热赛。这些代表没有直接转移到主赛事的车手。他们需要根据他们的完成位置和热火时间分配到半决赛。因此,快速热火中的第一个骑手 = 1,第二个快速热火中的第一个骑手 = 2,依此类推。当我们已经完成了第一个骑手的所有预赛时,我们在每个预赛中移动到下一个骑手......直到所有人都被分配了一个号码。这将为我提供半决赛的阵容。确实很复杂,但我们就是这样做的。
标签: php arrays loops sorting indexing