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

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

基于不同格式數(shù)字的多維數(shù)組排序

基于不同格式數(shù)字的多維數(shù)組排序

PHP
浮云間 2022-06-17 10:23:55
Array(    [0] => Array        (            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4            [title] => Flower            [order] => 3-1-9        )    [1] => Array        (            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594            [title] => Free            [order] => 2-7-5        )    [2] => Array        (            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b            [title] => Ready            [order] => 2-6-3        )    [3] => Array        (            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b            [title] => Ready            [order] => 3-6-3        ))我需要根據(jù)“順序”按降序排序
查看完整描述

3 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊

使用 PHP 7 Spaceship Operator <=> 爆炸后使用 usort() 和數(shù)組比較:


usort($multi, function($a,$b){

  return explode("-",$b['order']) <=> explode("-",$a['order']);

});

如果 order 始終具有固定格式,例如 3-1-9(而不是 31-4-345),則可以省略 explode:


usort($multi, function($a,$b){return $b['order'] <=> $a['order'];});   


查看完整回答
反對 回復(fù) 2022-06-17
?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗 獲得超2個贊

你可以試試下面的代碼


$multi  = array(

            array(

                    'hashtag'=>'a7e87329b5eab8578f4f1098a152d6f4',

                    'title'=>'Flower',

                    'order'=>'3-1-9'

                ),

            array(

                    'hashtag'=>'b24ce0cd392a5b0b8dedc66c25213594',

                    'title'=>'Free',

                    'order'=>'2-7-5'

                ),

            array(

                    'hashtag'=>'e7d31fc0602fb2ede144d18cdffd816b',

                    'title'=>'Ready',

                    'order'=>'2-6-3'

                ),

            array(

                    'hashtag'=>'e7d31fc0602fb2ede144d18cdffd816b',

                    'title'=>'Ready',

                    'order'=>'3-6-3'

                ),

        );


function sortByOrder($a, $b) {  

    return str_replace("-","", $a['order']) -  str_replace("-","",$b['order']);

    //For decending use the below code

    //return str_replace("-","", $b['order']) -  str_replace("-","",$a['order']);

}

usort($multi, 'sortByOrder');           

echo '<pre>';

print_r($multi);


查看完整回答
反對 回復(fù) 2022-06-17
?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

您可以對這些值使用explode function,作為分隔符傳遞-,因此您將從array破折號分隔的數(shù)字中獲得一個數(shù)字字符串。在進(jìn)行比較之前將數(shù)字字符串轉(zhuǎn)換為數(shù)字,然后對其進(jìn)行排序,例如:


function cmp($a, $b) {

    $aArray = explode("-", $a["order"]);

    $bArray = explode("-", $b["order"]);

    for ($index = 0; $index < min([count[$aArray], count[$bArray]]); $index++) {

        $intA = (int)$aArray[$index];

        $intB = (int)$bArray[$index];

        if ($intA !== $intB) return (($intA < $intB) ? 1 : -1); //Descending

    }

    if (count($aArray) === count($bArray)) return 0;

    return ((count($aArray) < count($bArray)) ? 1 : -1); //Descending

}

然后使用這個:


usort($yourArray, "cmp");


查看完整回答
反對 回復(fù) 2022-06-17
  • 3 回答
  • 0 關(guān)注
  • 131 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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