我有一个像这样的数组
array('p1'=>array('a'=>0,'b'=>'p1'),'p2'=>array('a'=>4,'b'=>'p2'),'p3'=>array('a'=>1,'b'=>'p3'))
我希望按键a
进行排序,所以它看起来像这个
array('p2'=>array('a'=>4,'b'=>'p2'),'p3'=>array('a'=>1,'b'=>'p3'),'p1'=>array('a'=>0,'b'=>'p1'))
这是一个关联的多维数组,我希望第二级数组按一个特定键排序(在示例a
中)
我找到了函数uksort
并传递了这个函数
function sortByA($a,$b){
if($a['a'] < $b['a']) return -1;
return 1;
}
但它说消息:非法字符串偏移&#39;计数&#39;
你能帮忙吗?
答案 0 :(得分:0)
消息显示非法字符串偏移'计数',这是因为您尝试访问sortByCount
函数中的'count'索引。你应该使用'a'索引。
此外,uksort()
将按“键”对数组进行排序,而您需要按“值”排序。因此,请使用usort()
代替uksort()
。签名与uksort()
相同。因此,只需在函数中将'count'替换为'a',然后将其传递给usort()