2015-04-21 2 views
-1

Я пытаюсь сортировать мой массив с помощью массива ниже, но я не мог сделать это, если кто-то может направить меня высоко оценив.Сортировка массива с помощью другого массива

массива для сортировки

в этом массиве У меня есть элемент с ID такой же идентификатор в массиве порядка и этот массив порядка в порядке, я хочу, чтобы отсортировать этот массив.

Array 
(
    [0] => Array 
     (
      [id] => 13 
      [packageName] => Tamil Channels 
      [package_type] => channel 
      [package_img_url] => Main Icon 304 X 237 - Tamil.png 
      [package_img] => 537f25b823294-1400841656-Roku Main Icon 304 X 237 - Tamil.png 
      [package_img_amg] => 1418122315-5486d44b568ec.png 
      [package_img_amg_url] => dfgd 
      [package_img_lyca] => 1426844718-550bec2e9cc58.png 
      [package_img_lyca_url] => asdsad 
      [Description] => Tamil Channels 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 88 
      [status] => 1 
     ) 

    [1] => Array 
     (
      [id] => 14 
      [packageName] => Sinhala Channels 
      [package_type] => channel 
      [package_img_url] => Main Icon 304 X 237 - Sinhala.png 
      [package_img] => 537f25ca655a8-1400841674-Roku Main Icon 304 X 237 - Sinhala.png 
      [package_img_amg] => 1418122337-5486d461cd955.png 
      [package_img_amg_url] => asdfsfsdf 
      [package_img_lyca] => 1426844726-550bec36e7416.png 
      [package_img_lyca_url] => sdfsdfsdf 
      [Description] => Sinhala Channels 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 77 
      [status] => 1 
     ) 

    [2] => Array 
     (
      [id] => 15 
      [packageName] => Malayalam Channels 
      [package_type] => channel 
      [package_img_url] => TV- 304 X 237.png 
      [package_img] => 537efa627d6cc-1400830562-Malayalam TV- 304 X 237.png 
      [package_img_amg] => 1418122391-5486d4974e6cc.png 
      [package_img_amg_url] => 1418122391-5486d4974e6cc.png 
      [package_img_lyca] => 1426844732-550bec3ca6c8a.png 
      [package_img_lyca_url] => 1426844732-550bec3ca6c8a.png 
      [Description] => Malayalam Channels 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 4 
      [status] => 1 
     ) 

    [3] => Array 
     (
      [id] => 16 
      [packageName] => Nepali Channels 
      [package_type] => channel 
      [package_img_url] => Main Icon 304 X 237 - Nepali.png 
      [package_img] => 537f291fdf4fe-1400842527-Roku Main Icon 304 X 237 - Nepali.png 
      [package_img_amg] => 1418122398-5486d49ee13aa.png 
      [package_img_amg_url] => 1418122398-5486d49ee13aa.png 
      [package_img_lyca] => 1426844740-550bec446969f.png 
      [package_img_lyca_url] => 1426844740-550bec446969f.png 
      [Description] => Nepali Channels 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 999 
      [status] => 1 
     ) 

    [4] => Array 
     (
      [id] => 18 
      [packageName] => Hindi Channels 
      [package_type] => channel 
      [package_img_url] => Main Icon 304 X 237 -Hindi.png 
      [package_img] => 537f5436257ce-1400853558-Roku Main Icon 304 X 237 -Hindi.png 
      [package_img_amg] => 1418122408-5486d4a885613.png 
      [package_img_amg_url] => 1418122408-5486d4a885613.png 
      [package_img_lyca] => 1426844747-550bec4bf2cf4.png 
      [package_img_lyca_url] => 1426844747-550bec4bf2cf4.png 
      [Description] => Hindi Channels 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 6 
      [status] => 1 
     ) 

    [5] => Array 
     (
      [id] => 19 
      [packageName] => Cricket TV 
      [package_type] => channel 
      [package_img_url] => TV 336_210.PNG 
      [package_img] => 5380357608752-1400911222-Cricket TV 336_210.PNG 
      [package_img_amg] => 1418628785-548e8eb1bc740.png 
      [package_img_amg_url] => 1418628785-548e8eb1bc740.png 
      [package_img_lyca] => 1427200214-551158d6c6db7.png 
      [package_img_lyca_url] => 1427200214-551158d6c6db7.png 
      [Description] => Cricket TV 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 3 
      [status] => 1 
     ) 

    [6] => Array 
     (
      [id] => 22 
      [packageName] => Special Programs 
      [package_type] => special_program 
      [package_img_url] => 1406617272-53d746b87d958.gif 
      [package_img] => 1406617272-53d746b87d958.gif 
      [package_img_amg] => 1418628774-548e8ea680b4e.png 
      [package_img_amg_url] => 1418628774-548e8ea680b4e.png 
      [package_img_lyca] => 1427200206-551158ce595bf.png 
      [package_img_lyca_url] => 1427200206-551158ce595bf.png 
      [Description] => Special Programs 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 9 
      [status] => 1 
     ) 

    [7] => Array 
     (
      [id] => 23 
      [packageName] => Filipino Channels 
      [package_type] => channel 
      [package_img_url] => 1426852710-550c0b66d3f22.png 
      [package_img] => 1426852710-550c0b66d3f22.png 
      [package_img_amg] => 1426852710-550c0b66d42d4.png 
      [package_img_amg_url] => 1426852710-550c0b66d42d4.png 
      [package_img_lyca] => 1427200220-551158dc61a8a.png 
      [package_img_lyca_url] => 1427200220-551158dc61a8a.png 
      [Description] => Filipino Channels 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 7 
      [status] => 1 
     ) 

    [8] => Array 
     (
      [id] => 24 
      [packageName] => African Channels 
      [package_type] => channel 
      [package_img_url] => 1427172483-5510ec83617f2.png 
      [package_img] => 1427172483-5510ec83617f2.png 
      [package_img_amg] => 1427172483-5510ec8361d78.png 
      [package_img_amg_url] => 1427172483-5510ec8361d78.png 
      [package_img_lyca] => 1427200225-551158e15c054.png 
      [package_img_lyca_url] => 1427200225-551158e15c054.png 
      [Description] => African Channels 
      [location] => 
      [channels] => 
      [duration] => 0 
      [currency] => 
      [amount] => 0.00 
      [lastModified] => 0000-00-00 00:00:00 
      [modifiedBy] => 0 
      [sort] => 8 
      [status] => 1 
     ) 

) 

заказ

Array 
(
    [0] => 14 
    [1] => 13 
    [2] => 24 
    [3] => 19 
    [4] => 18 
    [5] => 16 
    [6] => 15 
    [7] => 22 
    [8] => 23 
) 
+0

Я еще не понял вашу проблему, пока неясно. В чем дело ? –

ответ

2

Где arrayToSort это массив вы хотите отсортировать и $ заказ массив используется для сортировки. Это не оптимально, но оно должно работать.

function sortArray($order, $arrayToSort) { 
    $result = array(); 
    foreach($order as $value) { 
     foreach($arrayToSort as $elem) { 
      if($elem['id'] == $value) { 
       $result[] = $elem; 
       break; 
      } 
     } 
    } 
    return $result; 
} 

// добавили еще один знак равенства в случае condtions

+0

Я бы добавил 'break;' после '$ result [] = $ elem;', чтобы избежать ненужных циклов – Stepashka

+0

да только проблема - это ненужные циклы. Я также пытаюсь удалить эти – Yasitha

+0

. Да, это будет быстрее. – Unex

-1

Простой Еогеасп должен делать эту работу.

$sortedArray = array(); 
foreach ($orderArray as $key=>$val){ 
    $sortedArray[] = $originalArray[$val]; 
} 

Это будет перебирать массив порядка, и вытащить значения исходного массива, которые имеют ключи, соответствующие значения в массиве порядка в порядке их появления в массиве порядка.