二维数组如何找到数组内元素个数最多的放到数组最前面?

array:2 [▼
  "aa" => array:6 [▼
    "comboNameId" => 1
    "sku" => "aa"
    "lineItem" => "x"
    "qty" => 1
    "lineItem1" => "y"
    "qty1" => 2
  ]
  "bb" => array:8 [▼
    "comboNameId" => 1
    "sku" => "bb"
    "lineItem" => "111"
    "qty" => 111
    "lineItem1" => "222"
    "qty1" => 2
    "lineItem2" => "333"
    "qty2" => 3
  ]
]

这个是我循环得到的一个数组,现在我需要找到这个二维数组最多个数的那一个放到数组最上面去就好,不需要将数组进行排序。请问如何实现呀?

阅读 2.9k
2 个回答

`
//$arr是原数组,temp是临时保存数组
foreach ($arr as $k => $v) {

$temp[$k] = count($v);

}
//对数组的个数排序,多个排前面
arsort($temp);
//重新组合组合$res,就是目标结果
foreach ($temp as $k => $v) {

$res[$k] = $arr[$k];

}
`

clipboard.png

uasort($arr,function($a,$b){ 
    $a = count($a); 
    $b = count($b);
    return ($a<$b)?1:(($a==$b)?0:-1);
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题