У меня есть этот многомерный массив
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».
Как я могу отсортировать этот массив только по ключу «at»?
Как это:
Array
(
[0] => Array
(
[at] => 0
[bt] => 9
)
[1] => Array
(
[at] => 0
[bt] => 3
)
[2] => Array
(
[at] => 3
[bt] => 5
)
)
Спасибо.
РЕДАКТИРОВАТЬ:
Что касается ответа ниже, Матье Lescaudron
Когда у меня есть только это в моем массиве,
Array
(
[0] => Array
(
[at] => 0
[bt] => 9
)
[1] => Array
(
[at] => 0
[bt] => 3
)
)
Как я могу предотвратить его сортировку, поскольку я хочу отсортировать его только по ключу «at». И сортировать там нечего, так как они оба равны 0.
использование usort :
$array = array(
array('at' => 0, 'bt' => 9),
array('at' => 3, 'bt' => 5),
array('at' => 0, 'bt' => 3)
);
usort($array, function($a, $b) {
return $a['at'] - $b['at'];
});
var_dump($array);
Других решений пока нет …