鍍金池/ 問(wèn)答/PHP/ 二維數(shù)組如何找到數(shù)組內(nèi)元素個(gè)數(shù)最多的放到數(shù)組最前面?

二維數(shù)組如何找到數(shù)組內(nèi)元素個(gè)數(shù)最多的放到數(shù)組最前面?

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
  ]
]

這個(gè)是我循環(huán)得到的一個(gè)數(shù)組,現(xiàn)在我需要找到這個(gè)二維數(shù)組最多個(gè)數(shù)的那一個(gè)放到數(shù)組最上面去就好,不需要將數(shù)組進(jìn)行排序。請(qǐng)問(wèn)如何實(shí)現(xiàn)呀?

回答
編輯回答
溫衫

`
//$arr是原數(shù)組,temp是臨時(shí)保存數(shù)組
foreach ($arr as $k => $v) {

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

}
//對(duì)數(shù)組的個(gè)數(shù)排序,多個(gè)排前面
arsort($temp);
//重新組合組合$res,就是目標(biāo)結(jié)果
foreach ($temp as $k => $v) {

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

}
`

clipboard.png

2018年2月11日 02:14
編輯回答
薔薇花
uasort($arr,function($a,$b){ 
    $a = count($a); 
    $b = count($b);
    return ($a<$b)?1:(($a==$b)?0:-1);
});
2017年8月28日 22:09