2010-04-22 2 views
1

모두배열을 여러 개의 키로 정렬

다음 배열이 배열 형식입니다. JSON 형식은 사용자 편의를 위해 표시됩니다. PHP에서 "name"키를 사용하여 배열을 오름차순으로 정렬하려면 어떻게해야합니까?

  "food": 
      [ 
       { 
        "id": 1, 
        "name": "dessert" 
       }, 
       { 
        "id": 2, 
        "name": "maincourse" 
       }, 
       { 
        "id": 3, 
        "name": "entrees" 
       }, 
       { 
        "id": 4, 
        "name": "appetizers" 
       } 
      ] 

원하는 결과는이 같은 배열 : 당신이 배열이있는 경우

  "food": 
      [ 
       { 
        "id": 4, 
        "name": "appetizers" 
       }, 
       { 
        "id": 1, 
        "name": "dessert" 
       }, 
       { 
        "id": 3, 
        "name": "entrees" 
       }, 
       { 
        "id": 2, 
        "name": "maincourse" 
       } 
      ] 
+0

이 해시 아닌가? –

+0

이 입력에 대한 결과를 보여 주면 질문을 명확히하는 데 도움이 될 수 있습니다. –

+0

편집을 참조하십시오. – Jake

답변

5

사용 usort() :

$array = array('food' => array(
     array(
      "id"=> 1, 
      "name"=> "dessert" 
     ), 
     array(
      "id"=> 2, 
      "name"=> "maincourse" 
     ), 
     array(
      "id"=> 3, 
      "name"=> "entrees" 
     ), 
     array(
      "id"=> 4, 
      "name"=> "appetizers" 
     ) 
    ) 
); 

function compare($a, $b) { 
    return strcmp($a['name'], $b['name']); 
} 

usort($array['food'], 'compare'); 
print_r($array); 
0

당신은 예를 들어, ksort() 함수 (php.net/ksort)

ksort($array); 

를 사용할 수 있습니다

$array = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); 
ksort($array); 

위와 그들을 a, b, c, d로 분류합니다.

+0

여기에는 하나의 키만 있다고 가정합니다. 열쇠가 2 개 있습니다. 정렬 할 키를 지정하는 방법은 무엇입니까? – Jake

관련 문제