des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Сортировка многомерного масива по значению php?

есть массив вида

arr = [
0 => [key=> val, key2=> val2]
1 => [key=> val2, key2=> val22]
]


т.е.

[
       [ k=>2, k2=>3 ], [ k=>22, k2=>5 ], [ k=>23, k2=>4 ]
]


после сортировки по k2 хочу получить

[
       [ k=>2, k2=>3 ],  [ k=>23, k2=>4 ], [ k=>22, k2=>5 ]
]

т.е. ключи у многомерного массива одинаковые

как можно отсортировать по значению val22 ?
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
$key = 'key2';
uasort($arr, function($a,$b) use($key){
  
    if ($a[$key] == $b[$key]) {
        return 0;
    }
    return ($a[$key] < $b[$key]) ? -1 : 1;
});


//update


/*
@param array $arr array to sort
@param string $key key 
@param int $direction 1 or -1
*/
function sortByKey($arr, $key, $direction = 1){
  uasort($arr, function($a,$b) use($key, $direction){
  
      if ($a[$key] == $b[$key]) {
          return 0;
      }
      return ($a[$key] < $b[$key]) ? -1*$direction : 1*direction;
  });
  return $arr
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы