2014-09-15 5 views
0

배열 변수 $ data가 있는데 알파벳 순으로 정렬하려고합니다. 나는 foreach 루프를 통과하고 키를 정렬하려고합니다.다차원 배열 정렬이 작동하지 않습니다.

가운데의 배열이 다른 배열과 일치하도록 정렬되지 않습니다. 마지막으로 DealerRater가 마지막으로 표시되는 대신 Yelp가 마지막이어야합니다.

나는이 노력하고 있어요 :

foreach ($data as $key=>$value) { 
    ksort($key); 
} 

내 $ 데이터 배열 : 당신은 잘못된 값을 정렬하고

Array 
(
[1] => Array 
    (
     [Cars.com] => Array 
      (
       [rooftop_id] => 1 
       [rooftop_name] => Norm Reeves Honda - Cerritos 
       [name] => Cars.com 
       [review_site_id] => 30 
       [review_count] => 289 
       [review_average] => 4.80 
      ) 

     [Dealer Rater] => Array 
      (
       [rooftop_id] => 1 
       [rooftop_name] => Norm Reeves Honda - Cerritos 
       [name] => Dealer Rater 
       [review_site_id] => 10 
       [review_count] => 1231 
       [review_average] => 4.90 
      ) 

     [Google+ Local] => Array 
      (
       [rooftop_id] => 1 
       [rooftop_name] => Norm Reeves Honda - Cerritos 
       [name] => Google+ Local 
       [review_site_id] => 31 
       [review_count] => 556 
       [review_average] => 4.80 
      ) 

     [Yelp] => Array 
      (
       [rooftop_id] => 1 
       [rooftop_name] => Norm Reeves Honda - Cerritos 
       [name] => Yelp 
       [review_site_id] => 29 
       [review_count] => 423 
       [review_average] => 3.50 
      ) 

    ) 

[45] => Array 
    (
     [Cars.com] => Array 
      (
       [rooftop_id] => 45 
       [rooftop_name] => Leith Volkswagen of Raleigh 
       [name] => Cars.com 
       [review_site_id] => 30 
       [review_count] => 95 
       [review_average] => 4.90 
      ) 

     [Google+ Local] => Array 
      (
       [rooftop_id] => 45 
       [rooftop_name] => Leith Volkswagen of Raleigh 
       [name] => Google+ Local 
       [review_site_id] => 31 
       [review_count] => 21 
       [review_average] => 4.80 
      ) 

     [Yelp] => Array 
      (
       [rooftop_id] => 45 
       [rooftop_name] => Leith Volkswagen of Raleigh 
       [name] => Yelp 
       [review_site_id] => 29 
       [review_count] => 3 
       [review_average] => 1.50 
      ) 

     [Dealer Rater] => Array 
      (
       [rooftop_id] => 45 
       [rooftop_name] => Leith Volkswagen of Raleigh 
       [name] => Dealer Rater 
       [review_site_id] => 10 
       [review_count] => 0 
       [review_average] => 0 
      ) 

    ) 

[56] => Array 
    (
     [Cars.com] => Array 
      (
       [rooftop_id] => 56 
       [rooftop_name] => Wilde Jaguar Of Sarasota 
       [name] => Cars.com 
       [review_site_id] => 30 
       [review_count] => 34 
       [review_average] => 4.70 
      ) 

     [Dealer Rater] => Array 
      (
       [rooftop_id] => 56 
       [rooftop_name] => Wilde Jaguar Of Sarasota 
       [name] => Dealer Rater 
       [review_site_id] => 10 
       [review_count] => 271 
       [review_average] => 4.90 
      ) 

     [Google+ Local] => Array 
      (
       [rooftop_id] => 56 
       [rooftop_name] => Wilde Jaguar Of Sarasota 
       [name] => Google+ Local 
       [review_site_id] => 31 
       [review_count] => 31 
       [review_average] => 4.70 
      ) 

     [Yelp] => Array 
      (
       [rooftop_id] => 56 
       [rooftop_name] => Wilde Jaguar Of Sarasota 
       [name] => Yelp 
       [review_site_id] => 29 
       [review_count] => 1 
       [review_average] => 1.00 
      ) 

    ) 
) 
+1

봐 – Mihai

답변

0

. 이것을하십시오 :

foreach ($data as $key=>$value) { 
    ksort($value); 
} 

$key는 주 배열의 색인입니다. $value은 정렬하려는 배열 요소입니다. 좀 더 논리적으로 변수라는 이름의 경우는 다음과 같이 더 많은 의미를 줄 :

foreach ($data as $index=>$element) { 
    ksort($element); 
} 

또는이 짧은 : 관련 질문에

foreach ($data as $element) { 
    ksort($element); 
} 
관련 문제