PHP :

2017-12-22 1 views
1

작동하지 uasort는 내가 PHP를 사용하여 그것을 분류하는 것을 시도하고 다음과 같은 배열PHP :

 
$infoArray = Array 
(
    [Shockwafe Ultra 9.2] => Array 
     (
      [0] => 8 
      [1] => 45 Hz - 18.000 Hz 
      [2] => 9.2 
      [3] => 1 
      [4] => 1 
      [5] => 1 
      [6] => 
      [7] => 
      [8] => B+ 
      [9] => B+ 
      [10] => A 
      [11] => B 
     ) 

    [Bose 5.1 SoundTouch 300] => Array 
     (
      [0] => 9 
      [1] => 45 Hz - 20.000 Hz 
      [2] => 5.1 
      [3] => 1 
      [4] => 1 
      [5] => 1 
      [6] => 1 
      [7] => 1 
      [8] => A 
      [9] => A 
      [10] => A+ 
      [11] => A+ 
     ) 

    [Sonos 5.1 System] => Array 
     (
      [0] => 10 
      [1] => 31.5 Hz - 20.000 Hz 
      [2] => 5.1 
      [3] => 1 
      [4] => 1 
      [5] => 1 
      [6] => 1 
      [7] => 1 
      [8] => A+ 
      [9] => A+ 
      [10] => A+ 
      [11] => A+ 
     ) 

) 

있습니다. 각 배열 구성원의 [0] 값을 기준으로 정렬하고 싶습니다. 순서는 Sonos, Bose, Shockwafe, 세 번째가되어야합니다.

내 PHP 코드는 다음과 같이 보입니다 :

function sortByOrder($a, $b) { 
return $a[0] - $b[0]; } 

uasort($infoArray, 'sortByOrder'); 

내가 그것을 성공적으로 내가 원하는 것처럼 순서를 배열 WAMP에이 작업을 시도했습니다. 그러나, 내 Wordpress 설치 온라인,이 작동하지 않습니다. 단순히 배열을 재정렬하지 않습니다. function.php 내에서 짧은 코드 내에서 작업하고 있다는 점에 유의해야합니다. 나는 성공없이 shortcode 영역 바깥에서 sortByOrder() 함수를 옮겨 보았습니다.

어떤 아이디어가 잘못 되었나요?

+0

비교 함수에 'die()'문을 추가하여 먼저 호출되는지 확인하십시오. 그런 다음 배열에 두 개의 print_r 문을 쓰십시오. 하나는 앞과 뒤에 하나이므로, 무엇이 발생했는지 알 수 있습니다. 또한 로그에서 오류가 없는지 확인하십시오. – kais

답변

0
function sortByOrder($a, $b) { 
     $result = 0; 
     if ($b['rating'] > $a['rating']) { 
      $result = 1; 
     } elseif ($b['rating'] < $a['rating']) { 
      $result = -1; 
     } 
     return $result; 
    } 

이것은 결국 내 해결책이었습니다. 10 진수와 관련이 있습니다. 이유가 확실하지 않습니다. 정수로 작업하는 경우 OP의 솔루션은 좋지만 10 진수의 경우 필요합니다.