call_user_func_array 和 array_multisort 排序问题

橙风子 2017-04-12 07:10:03

$array = [
['a'=>1, 'b'=>'1', 'c'=>'scdn'],
['a'=>2, 'b'=>'2', 'c'=>'scdn'],
['a'=>3, 'b'=>'3', 'c'=>'scdn'],
['a'=>4, 'b'=>'4', 'c'=>'scdn'],
['a'=>5, 'b'=>'5', 'c'=>'scdn'],
['a'=>6, 'b'=>'6', 'c'=>'scdn'],
['a'=>7, 'b'=>'7', 'c'=>'scdn'],
['a'=>9, 'b'=>'8', 'c'=>'scdn'],
['a'=>9, 'b'=>'9', 'c'=>'scdn'],
['a'=>10, 'b'=>'10', 'c'=>'scdn'],
];
$asc = SORT_ASC;
$desc = SORT_DESC;
$array = [array_column($array, 'a'), $desc, $array];
array_multisort($array[0], $array[1], $array[2]);
//call_user_func_array('array_multisort', $array);
print_r($array[2]);

array_multisort($array[0], $array[1], $array[2]); 正常运行排序
call_user_func_array('array_multisort', $array); 无法排序呢,求解
...全文
184 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
橙风子 2017-04-12
  • 打赏
  • 举报
回复
厉害了我的版主,谢谢
xuzuning 2017-04-12
  • 打赏
  • 举报
回复
$desc = SORT_DESC;
$ar = [array_column($array, 'a'), $desc, &$array];
call_user_func_array('array_multisort', $ar);
print_r($ar[2]);
1、array_multisort 是对数组的引用进行排序的 2、由于是传递引用,所以数组要改名 慢慢体会吧

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧