我正在尝试通过下面的数组对我的数组进行排序,但如果有人可以引导我高度赞赏,我仍然无法做到这一点。
要排序的数组
在这个数组中,我有一个ID为ID的元素,顺序数组中的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是您要排序的数组,$ order是您用于排序的数组。这不是最佳的,但应该有效。
function sortArray($order, $arrayToSort) {
$result = array();
foreach($order as $value) {
foreach($arrayToSort as $elem) {
if($elem['id'] == $value) {
$result[] = $elem;
break;
}
}
}
return $result;
}
//为if condtions添加了另一个等号
答案 1 :(得分:-1)
一个简单的foreach应该做的工作。
$sortedArray = array();
foreach ($orderArray as $key=>$val){
$sortedArray[] = $originalArray[$val];
}
这将遍历order数组,并按照它们在order数组中出现的顺序,拉出原始数组的值,这些数组的键与order数组中的值匹配。