PHP中按特定键降序排列关联数组

PHP中按特定键降序排列关联数组,php,arrays,sorting,associative-array,Php,Arrays,Sorting,Associative Array,我有一个这样的数组 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('

我有一个这样的数组

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;
}
但它显示的信息是:非法的字符串偏移量“count”

您能帮忙吗?

消息说字符串偏移量“count”非法,这是因为您试图访问sortByCount函数中的“count”索引。您应该使用“a”索引


此外,uksort将按“键”对数组进行排序,而您需要按“值”进行排序。因此,请使用usort而不是uksort。签名与uksort相同。因此,只需将函数中的“count”替换为“a”,并将其传递给usort

您的数组中没有“count”属性,因此会出现错误。我认为你想计算一些东西,cso使用count来代替。你的意思是“a”而不是“count”?当你复制代码时,你可能需要调整一些东西以使它与你的代码/数据一起工作。编辑。”“count”是原始密钥您测试代码了吗?你用正确的钥匙能用吗?那只是一种类型。我的意思是一点也不算