2016-11-23 4 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

Stupid меня, там было между линиями, которые зажмурил рассортировать 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

Синтаксис

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

Вы должны обеспечить sorting_type для массива

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

Я обновил ответы = _ = я забыл 'sorting_type' для' $ data' – Doanh

+0

opps, отсутствует 'sorting_order' not' sorting_type', Извините – Doanh

Смежные вопросы