第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

多維數(shù)組使用數(shù)組中找到的數(shù)值從高到低排序

多維數(shù)組使用數(shù)組中找到的數(shù)值從高到低排序

PHP
慕運維8079593 2023-11-03 20:38:04
我目前正在尋找一種有效的方法來根據(jù)最高 -> 最低使用對數(shù)組/對象進行排序avgTotalPoints,然后根據(jù)字段中的排名放置數(shù)值rank。我查看了一些示例并能夠相應地創(chuàng)建一個函數(shù)。然而,它現(xiàn)在正在發(fā)揮作用。我試圖訪問avgTotalPoints下面所示的排序函數(shù),但我無法訪問,因為數(shù)組是多深度的。關于如何實現(xiàn)這一目標有任何指導嗎?function sortHighestToLowest($arr){    if (isset($arr) && !empty($arr)) {        uasort($arr, function ($a, $b) {            return $a['avgTotalPoints'] <=> $b['avgTotalPoints'];        });        return array_reverse($arr);    }    return null;}JSON 輸入{    "mlb": {        "james": {            "avgTotalPoints": 80.675,            "avgPointsDifferential": -0.8112500000000002,            "rank": null        },        "mary": {            "avgTotalPoints": 114.9875,            "avgPointsDifferential": 6.262500000000003,            "rank": null        },        "lucas": {            "avgTotalPoints": 66.825,            "avgPointsDifferential": -9.10625,            "rank": null        },        "timothy": {            "avgTotalPoints": 69.2625,            "avgPointsDifferential": -19.14125,            "rank": null        },        "samantha": {            "avgTotalPoints": 91.625,            "avgPointsDifferential": -36.85000000000001,            "rank": null        }    },    "nhl": {        "samantha": {            "avgTotalPoints": 82.20000000000002,            "avgPointsDifferential": 15.005714285714289,            "rank": null        },        "peter": {            "avgTotalPoints": 77.65714285714284,            "avgPointsDifferential": -13.31857142857143,            "rank": null        },        "rick": {            "avgTotalPoints": 91.61428571428571,            "avgPointsDifferential": 11.217142857142859,            "rank": null        },        "bubba": {            "avgTotalPoints": 119.60000000000001,            "avgPointsDifferential": 28.13333333333334,            "rank": null        },        "james": {            "avgTotalPoints": 90.18571428571428,            "avgPointsDifferential": 10.915714285714285,            "rank": null        }    }}
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

由于您的數(shù)組包含多個要單獨排序的子數(shù)組,因此您可以利用將array_map排序應用于每個子數(shù)組。

執(zhí)行此操作后,您可以簡單地循環(huán)遍歷同一子數(shù)組(通過引用)$rank,同時遞增變量并將其分配給每個條目。

另外,您不需要使用array_reverse反轉排序,只需反轉<=>比較的操作數(shù)即可。

function sortHighestToLowest(array $arr): array

{

? return array_map(static function (array $entries): array {

? ? uasort($entries, static function (array $entry1, array $entry2): int {

? ? ? return $entry2['avgTotalPoints'] <=> $entry1['avgTotalPoints'];

? ? });


? ? $rank = 0;

? ? foreach ($entries as &$entry) {

? ? ? $entry['rank'] = ++$rank;

? ? }


? ? return $entries;

? }, $arr);

}

演示


查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號