//정렬대상 array, 정렬 기준 key, 오름/내림차순
function arr_sort($array, $key, $sort='asc') {
$keys = array();
$vals = array();
foreach ($array as $k=>$v) {
$i = $v[$key].'.'.$k;
$vals[$i] = $v;
array_push($keys, $k);
}
unset($array);
if ($sort=='asc') {
ksort($vals);
} else {
krsort($vals);
}
$ret = array_combine($keys, $vals);
unset($keys);
unset($vals);
return $ret;
}
$arr = array(
array('num' => 3, 'str' => 'e'),
array('num' => 1, 'str' => 'd'),
array('num' => 4, 'str' => 'c'),
array('num' => 2, 'str' => 'b'),
array('num' => 5, 'str' => 'a'),
array('num' => 6, 'str' => 'f'),
array('num' => 7, 'str' => 'g'),
array('num' => 8, 'str' => 'h')
);
//배열의 str 값을 기준으로 오름차순으로 정렬한다
$result1 = arr_sort($arr,'str');
//배열의 num값을 기준으로 내림차순으로 정렬한다
$result2 = arr_sort($arr,'num','desc');
velog.io/@devkhun/php-2%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4-%ED%8A%B9%EC%A0%95-value-%EA%B0%92%EC%9C%BC%EB%A1%9C-sort%ED%95%98%EA%B8%B0