2012-02-28 5 views
4

I이PHP 다차원 배열 (에 usort)

Array 
(
    ["News 1"] => Array 
     (
      [text] => tests 
      [language] => 
      [advertiserCompetitionScale] => 5 
      [avgSearchVolume] => 7480000 
      [lastMonthSearchVolume] => 9140000 
     ) 

    ["News 2"] => Array 
     (
      [text] => personality tests 
      [language] => 
      [advertiserCompetitionScale] => 5 
      [avgSearchVolume] => 165000 
      [lastMonthSearchVolume] => 201000 
     ) 

    ["News 3] => Array 
     (
      [text] => online tests 
      [language] => 
      [advertiserCompetitionScale] => 5 
      [avgSearchVolume] => 246000 
      [lastMonthSearchVolume] => 301000 
     ) 

) 

같은 연관 배열 내가 원하는 열 (LastMonthSearchVolume 예)하여 제압가

// compare function 
function cmpi($a, $b) 
{ 

    return strcmp($a["lastMonthSearchVolume"], $b["lastMonthSearchVolume"]); 
} 

// do the array sorting 
usort($latest_array, 'cmpi'); 

문제는 때이다 배열을 덤프하여 결과를 봅니다. usort가 "News 1", "News 2"등을 제거하여 연관 배열을 깨고 0,1,2로 바꾸십시오.

정렬 할 수있는 솔루션이 있습니까? 칼럼을 지키다 이름?

감사 usort 대신에

답변

4

는 인덱스 관계를 유지 uasort 함수를 사용한다.

1

대신 uasort을 사용하십시오. usort은 연관 키를 유지하지 않지만 uasort은 유지합니다.