2016-11-23 6 views
0

나는 언제나처럼 array_multisort을 사용하고 있지만 이번에 올바르게 정렬하는 데 문제가 있습니다.array_multisort가 제대로 작동하지 않습니까?

나는 다차원 배열 ($ 데이터)를 정렬하는 데 사용,하지만 난이 예에서 문제를 단순화 :

$data = array(6 => 'WEEK 48', 7 => 'WEEK 49', 8 => 'WEEK 47', 9 => 'WEEK 50', 10 => 'WEEK 51'); 

    $sort = array(8 => 201647, 6 => 201648, 7 => 201649, 9 => 201650, 10 => 201651); 

    array_multisort($sort, SORT_ASC, $data); 

    Output: 
    Array 
    (
     [0] => WEEK 48 
     [1] => WEEK 49 
     [2] => WEEK 47 
     [3] => WEEK 50 
     [4] => WEEK 51 
    ) 

내가 무엇을 놓치고를?

+1

은 입력 매개 변수가 icorrect http://www.w3schools.com/Php/func_array_multisort.asp 당신이 있기 때문에, 대신에 $ 데이터 – VadimB

답변

0

바보는 정렬을 망쳐 선 사이에서 ksort($data) 있었다.

1

<?php 

     $data = array(6 => 'WEEK 48', 7 => 'WEEK 49', 8 => 'WEEK 47', 9 => 'WEEK 50', 10 => 'WEEK 51'); 

     $sort = array(8 => 201647, 6 => 201648, 7 => 201649, 9 => 201650, 10 => 201651); 

     array_multisort($data, SORT_ASC, $sort); 

     echo '<pre>'; 
     print_r($data); 

    ?> 

출력하십시오 :

Array 
(
    [0] => WEEK 47 
    [1] => WEEK 48 
    [2] => WEEK 49 
    [3] => WEEK 50 
    [4] => WEEK 51 
) 
+0

내가 정렬 배열로 $ 종류의 필요의 $ 정렬 배열을 정렬하는 것 같다 $ 데이터 사실 다차원 배열입니다. 왜 다른 방식으로 작동하지 않습니까? –

0

구문 당신은 당신의 배열 sorting_type을 제공해야

array_multisort(array1,sorting order,sorting type,array2,array3...) 

array_multisort($sort, SORT_ASC, SORT_STRING, $data, SORT_ASC, SORT_NUMERIC); 

var_dump($sort); 
var_dump($data); 

결과 : 나

array(5) { 
    [0]=> int(201647) 
    [1]=> int(201648) 
    [2]=> int(201649) 
    [3]=> int(201650) 
    [4]=> int(201651) 
} 

array(5) { 
    [0]=> string(7) "WEEK 47" 
    [1]=> string(7) "WEEK 48" 
    [2]=> string(7) "WEEK 49" 
    [3]=> string(7) "WEEK 50" 
    [4]=> string(7) "WEEK 51" 
} 
+0

$ 데이터가 여전히 제대로 정렬되지 않습니다. –

+0

답변을 갱신했습니다 = _ ='$ data'에'sorting_type'을 잊었습니다 – Doanh

+0

opps,'sorting_order'이 (가)'sorting_type'이 아닙니다. 죄송합니다. – Doanh