我试图使用usort和sortby基本上在下面的代码为
之后
1.通过'feature_sort_order'排序$ featureLists
2.遍历每个$ featureList并将排序顺序重置为整数一个连续值
我的请愿表中包含值为1到6的feature_sort_order列 我在控制器中使用了这部分代码:
$featureList = Petition::getFeaturedPetitions();
$Petition->featured_sort_order = Input::get('dropdown_menu_list');
foreach($featureList as $featureLists)
{
if($featureLists->feature_sort_order >= $Petition->featured_sort_order && $featureLists->id != $Petition->id)
{
$featureLists->feature_sort_order += 1;
}
}
这里我要做的是从下拉菜单中选择一个值,并在所选项目之前更改当前项目位置。
我尝试过这样的事情,但没有成功:
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
function sortBy(&$items, $key) {
if (is_array($items)) {
return usort($items, function($a, $b) use ($key) {
return cmp($a[$key], $b[$key]);
});
}
return false;
}
sortBy($featureList, 'featured_sort_order');
// foreach($featureLists->feature_sort_order as featureOrder)
// {
// }