2014-02-26 3 views
1

내 배열 :PHP 정렬 ASSOC 배열

내가 "TIME_PAIR" 값으로 array(n)[100]의 배열을 정렬 할 필요가
array(n) { 
[...], 
[100]=> 
    array(4) { 
    [0]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "16:35" 
    } 
    [1]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "11:25" 
    } 
    [2]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "13:25" 
    } 
    [3]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "15:00" 
    } 
    } 
[...] 
} 

. 썸 array[100][0] 끝 부분에 있어야합니다. 그런 종류를하는 방법? 필자는 array_multisort을 사용하려고하지만 항상 아래에 배열 전체 코드 정렬 저 (

+2

당신은 [에 usort] 사용할 것 (http://us1.php.net/usort) - HTTP : // 유래. com/questions/2699086/sort-multi-dimensional-array-by- 가치 –

+1

원하는 결과는 무엇입니까? 각 하위 배열 (즉, $ array [100])은 "TIME_PAIR"에 의해 정렬되어야한다고 가정합니다. 그러나 하위 배열은 어떻게 주문합니까? 샘플 입력 및 원하는 출력을 보여줄 수 있습니까? – ziollek

+1

@ wingsofovnia : 아래 해결책을 시도해보십시오 .. – Haroon

답변

1

안녕 당신에 usort 사용할 수있는 PHP 기능이 작동하지 않습니다.

$arr = array(
      "100"=>array(
       array("TIME_PAIR"=>"16:35"), 
       array("TIME_PAIR"=>"11:25"), 
       array("TIME_PAIR"=>"13:25"), 
       array("TIME_PAIR"=>"15:00"), 
      ) 

      ); 

echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 

function cmp($a, $b) { 
    return $a['TIME_PAIR'] - $b['TIME_PAIR']; 
} 

$res = usort($arr[100],"cmp"); 

echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 

당신은 아래의 결과를해야합니다. .

Array 
(
[100] => Array 
    (
     [0] => Array 
      (
       [TIME_PAIR] => 11:25 
      ) 

     [1] => Array 
      (
       [TIME_PAIR] => 13:25 
      ) 

     [2] => Array 
      (
       [TIME_PAIR] => 15:00 
      ) 

     [3] => Array 
      (
       [TIME_PAIR] => 16:35 
      ) 

    ) 

) 

어떤 질문을 주시기 바랍니다 ... :)