Anonymous
Сортировка массива по нескольким элементам
Сообщение
Anonymous » 07 ноя 2024, 23:01
Я решил переписать это, чтобы сделать это более понятным и, надеюсь, устранить путаницу.
Скажем, у меня несколько этажей офисов. Я хочу отсортировать эти офисы по наименьшему номеру для каждого этажа
чтобы результат выглядел следующим образом:
Код: Выделить всё
-------------------------
| 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,
)
, )
Что мне нужно сделать, так это пройти по каждому этажу по одному, занять офис с наименьшим номером, а затем снова начать с этажа с наименьшим номером, пока не исчерпаю себя.< /п>
Подробнее здесь:
https://stackoverflow.com/questions/346 ... e-elements
1731009680
Anonymous
Я решил переписать это, чтобы сделать это более понятным и, надеюсь, устранить путаницу. Скажем, у меня несколько этажей офисов. Я хочу отсортировать эти офисы по наименьшему номеру для каждого этажа чтобы результат выглядел следующим образом: [code]------------------------- | 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 | ------------------------- [/code] Массив: [code]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, ) , ) [/code] Что мне нужно сделать, так это пройти по каждому этажу по одному, занять офис с наименьшим номером, а затем снова начать с этажа с наименьшим номером, пока не исчерпаю себя.< /п> Подробнее здесь: [url]https://stackoverflow.com/questions/34646809/array-sorting-on-multiple-elements[/url]