PHP

[PHP] 2차원 배열 value 값 기준 정렬 / 배열 정렬

chsr 2020. 5. 12. 16:21
728x90
반응형

■ PHP 2차원 배열 value 값 기준 정렬 / PHP 2차원 배열 정렬


 사용법

//정렬 대상 array, 정렬 기준 key, 오름/내림차순(asc/desc)
function arr_sort( $array, $key, $sort ){
  $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')
);

//배열 내 str 값 기준으로 오름차순으로 정렬한다
$result = arr_sort( $arr, 'str' , 'asc' );

//배열 내 num 값 기준으로 내림차순으로 정렬한다
$result = arr_sort( $arr,'num', 'desc' );

 

728x90
반응형