<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • php多維數組排序函數(php數組排序的函數有哪些)


    如果你經常寫 PHP,要說你沒用過數組,那簡直是不可能的。PHP 一個數組可以走遍大街小巷,行遍萬水千山。數組相關的函數也馬虎不得,如影隨形。

    今天說說一個稍顯棘手的問題,多維數組的排序。

    3分鐘短文 | PHP 多維數組按值排序,別抓狂看這里

    學習時間

    比如下面的數組,

    3分鐘短文 | PHP 多維數組按值排序,別抓狂看這里

    如果想要根據 order 的值進行排序(升序,降序),怎么做呢?

    你需要使用 usort 函數,且需要聲明一個回調函數:

    function sortByOrder($a, $b) {
        return $a['order'] - $b['order'];
    }
    
    usort($myArray, 'sortByOrder');

    這在 PHP 5.2 以及早期的版本內如此使用,之后的 PHP 版本,可以直接使用匿名函數,簡寫如下:

    usort($myArray, function($a, $b) {
        return $a['order'] - $b['order'];
    });

    隨著 PHP 版本的迭代,越來越多的新特性添加進去,特別是 PHP 7 以后的太空艙操作符,給這樣的回調函數提供了更靈活簡便的用法:

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

    由特殊到一般

    上面的函數處理都是針對特定的數組進行的,現在我們把情形推向一般,寫一個可以通用的處理函數,可以用于對多位數組的排序處理:

    3分鐘短文 | PHP 多維數組按值排序,別抓狂看這里

    特別地,如果你需要保留排序前后的鍵值索引關系,那么就要使用 uasort 函數了。用法與 usort 同。

    寫在最后

    因為處理的數組結構不可確定,在實際使用中,回調函數內開發者可靈活操作,已達到排序的目的。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费