亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從舊數組中按每個重復值的計數降序創建新數組

如何從舊數組中按每個重復值的計數降序創建新數組

PHP
偶然的你 2022-07-29 15:21:45
我想從一個舊數組中安排一個新數組,其中有多個值,其中也有重復值(在舊數組中)。所需的編碼應如下所示like so$old_array = array("1", "2" ,"3", "1", "5", "2", "2", "3", "3", "3", "6");$new_array = array("3","2","1","5","6"); 新數組按值頻率的降序排列。例如?!?”的計數為 4,“2”的計數為 3,“1”的計數為 2,依此類推
查看完整描述

2 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

$old_array = array("1", "2" ,"3", "1", "5", "2", "2", "3", "3", "3", "6");          

$values = array_count_values( $old_array );             

arsort($values);            

$result = array_keys($values);

輸出(對于 php 5.6.35):


$result = 

    array(

    (int) 0 => (int) 3,

    (int) 1 => (int) 2,

    (int) 2 => (int) 1,

    (int) 3 => (int) 6,

    (int) 4 => (int) 5

)


查看完整回答
反對 回復 2022-07-29
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

一種選擇是使用array_count_values,然后使用uksort根據原始數組中的值對鍵進行排序。


排序后,取array_keys。


$old_array = array("1", "2" ,"3", "1", "5", "2", "2", "3", "3", "3", "6");

$result = array_count_values($old_array);

uksort($result, function($a, $b) use ($result){

    return $result[$a] < $result[$b];

});

$new_array = array_keys($result);

print_r($new_array);

輸出


Array

(

    [0] => 3

    [1] => 2

    [2] => 1

    [3] => 5

    [4] => 6

)


查看完整回答
反對 回復 2022-07-29
  • 2 回答
  • 0 關注
  • 124 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號