У меня есть этот многомерный массивPHP - сортировка многомерный массив с помощью array_multisort
Array
(
[0] => Array
(
[at] => 0
[bt] => 9
)
[1] => Array
(
[at] => 3
[bt] => 5
)
[2] => Array
(
[at] => 0
[bt] => 3
)
)
Я хочу, чтобы отсортировать его по ключу «в», так что я попробовал этот код
//$process = array() given above
$p = array();
foreach ($process as $key => $row) {
$p[$key] = $row['at'];
}
array_multisort($p, SORT_NUMERIC, SORT_ASC, $process);
и я получаю этот результат
Array
(
[0] => Array
(
[at] => 0
[bt] => 3
)
[1] => Array
(
[at] => 0
[bt] => 9
)
[2] => Array
(
[at] => 3
[bt] => 5
)
)
Он сортирует «на», НО также сортирует «bt».
Как я могу отсортировать этот массив на ключе «на» ТОЛЬКО?
Как это:
Array
(
[0] => Array
(
[at] => 0
[bt] => 9
)
[1] => Array
(
[at] => 0
[bt] => 3
)
[2] => Array
(
[at] => 3
[bt] => 5
)
)
Спасибо.
EDIT:
А ниже ответ Матье Lescaudron
Когда я только это на моем массиве,
Array
(
[0] => Array
(
[at] => 0
[bt] => 9
)
[1] => Array
(
[at] => 0
[bt] => 3
)
)
Как я могу предотвратить его сортировки, так как я только хотите отсортировать его по клавише "at". И ничего не сортировать там, так как они оба 0.
Я постараюсь узнать usort. кстати, он работает. спасибо – akoxi
Я отредактировал вопрос. Я просто подумал, что это произойдет, только если у меня есть только два элемента в массиве '$ process'. Поэтому я создаю условие в функции обратного вызова. Еще раз спасибо. – akoxi