」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 PHP 中根據特定鍵對多維數組進行自訂排序?

如何在 PHP 中根據特定鍵對多維數組進行自訂排序?

發佈於2024-11-08
瀏覽:192

How to Custom Sort Multidimensional Arrays Based on a Specific Key in PHP?

多維數組的自訂排序

對多維數組進行排序是程式設計中的常見任務。本文示範如何使用 PHP usort() 函數根據特定鍵對此類陣列進行排序。

理解任務

考慮以下多維數組,其中每個元素代表一條記錄:

Array (
    [0] => Array
        (
            [iid] => 1
            [invitee] => 174
            [nid] => 324343
            [showtime] => 2010-05-09 15:15:00
            [location] => 13
            [status] => 1
            [created] => 2010-05-09 15:05:00
            [updated] => 2010-05-09 16:24:00
        )

    [1] => Array
        (
            [iid] => 1
            [invitee] => 220
            [nid] => 21232
            [showtime] => 2010-05-09 15:15:00
            [location] => 12
            [status] => 0
            [created] => 2010-05-10 18:11:00
            [updated] => 2010-05-10 18:11:00
        ))

按鍵排序

要按「status」鍵對此數組進行排序,我們需要定義一個比較函數來決定元素的順序。

function cmp($a, $b) {
    if ($a['status'] == $b['status']) {
        return 0;
    }
    return ($a['status'] 

此函數比較兩個元素的「狀態」值。如果值相等,則傳回 0。如果第一個元素的「狀態」值低於第二個元素的「狀態」值,則傳回 -1。否則,它返回 1。

使用usort()

我們現在可以使用usort() 函數使用我們的比較函數對數組進行排序:

usort($array, "cmp");

這將根據「狀態」鍵。修改後的陣列將相應地重新排列其元素。

自訂比較

可以自訂比較函數以根據任意鍵對陣列進行排序。只需修改函數即可比較所需的鍵值。這提供了根據不同標準對多維數組進行排序的靈活性。

版本聲明 本文轉載於:1729422140如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • 使用 CSS 技巧立即提高行動可用性
    使用 CSS 技巧立即提高行動可用性
    想要防止使用者意外放大您的網站?使用這個簡單的元標記在行動裝置上停用雙擊縮放: 這讓您的行動網站感覺更像是本機應用程式。你在你的專案中嘗試過這個嗎?
    程式設計 發佈於2024-11-08
  • Chrome擴充功能開發:如何開啟頁面右側和頂部的popup.html
    Chrome擴充功能開發:如何開啟頁面右側和頂部的popup.html
    預設在擴充功能圖示下方開啟彈出窗口,我們可以透過建立新視窗來更改位置 chrome.action.onClicked.addListener(async (tab) => { openPopup(tab) }); const openPopup = async (tab) => ...
    程式設計 發佈於2024-11-08
  • 如何在 Bootstrap 中輕鬆水平居中影像?
    如何在 Bootstrap 中輕鬆水平居中影像?
    Bootstrap 圖像居中綜合指南在網頁上水平居中圖像對於實現平衡和視覺吸引力通常至關重要設計。當使用流行的 Bootstrap 框架時,您可能很難找到最有效的方法來實現這種對齊。在本文中,我們將探索使用 Bootstrap 將影像死點置中的簡單解決方案。 .center-block 類別Twit...
    程式設計 發佈於2024-11-08
  • 掌握 Golang:基本程式教學合集
    掌握 Golang:基本程式教學合集
    透過這套全面的程式設計教學深入探索 Golang 的世界!無論您是經驗豐富的開發人員還是剛開始 Golang 之旅,這些精心策劃的課程都將為您提供成為熟練 Gopher 所需的基本技能和知識。 ? Golang HTTP 請求處理 探索 Golang 中 net/http 套件的強...
    程式設計 發佈於2024-11-08
  • 在 C++ 中可以將 void 指標轉換為函式指標嗎?
    在 C++ 中可以將 void 指標轉換為函式指標嗎?
    在C 中將空指標轉換為函數指標將dlsym() 等函數傳回的空指標轉換為函數指標在C中並不簡單。預設情況下,C 98/03 中禁止此類直接轉換。 限制原因在 C 98/03 中,void* 指針用於引用對象,不是函數或成員指針。 C 中的有條件支援0x在 C 0x 中,實作可以選擇支援將 void*...
    程式設計 發佈於2024-11-08
  • 如何在 C++ 中使用enable_if 實作條件成員函式重載?
    如何在 C++ 中使用enable_if 實作條件成員函式重載?
    選擇具有不同enable_if條件的成員函數在C語言中,enable_if是一個工具,用於根據是否有條件啟用或停用某些程式碼模板參數滿足特定條件。當您想要根據模板參數自訂類別或函數的行為時,這可能很有用。 在給定的範例中,目標是建立一個成員函數 MyFunction,該函數根據範本是否參數T是否為整...
    程式設計 發佈於2024-11-08
  • 如何修正 phpMyAdmin 中的「使用者\'Root\'@\'localhost\'\」存取被拒絕的錯誤?
    如何修正 phpMyAdmin 中的「使用者\'Root\'@\'localhost\'\」存取被拒絕的錯誤?
    如何解決phpMyAdmin 中的「存取被拒絕」錯誤如果遇到「存取被拒絕」存取phpMyAdmin 時出現「for user 'root'@'localhost' (using password: NO)」錯誤,通常表示'root' 使用者的密碼設定或...
    程式設計 發佈於2024-11-08
  • Miva 的日子:第 15 天
    Miva 的日子:第 15 天
    這是 100 天 Miva 編碼挑戰中的第 15 天,雖然時間過得很快,但它幫助我大大提高了我的 HTML、CSS 和 JavaScript 技能。 今天,我學習了JavaScript中的兩個概念。顯示物件屬性和 JavaScript 事件。它們對於添加資料以及保持網頁的響應性和互動性非常重要。 ...
    程式設計 發佈於2024-11-08
  • 將 JavaScript 轉換為 TypeScript 的多年經驗:我的關懷意見
    將 JavaScript 轉換為 TypeScript 的多年經驗:我的關懷意見
    I started my JS career in 2015, spent a year working exclusively with it, and then transitioned to TypeScript. I’d love to say 'And never looked back ...
    程式設計 發佈於2024-11-08
  • x86 彙編中的「鎖定」指令是否無限期地保留匯流排?
    x86 彙編中的「鎖定」指令是否無限期地保留匯流排?
    理解x86彙編中的“Lock”指令x86彙編中的“lock”指令是一個前綴,它強制後續指令對總線的獨佔所有權。這可確保 CPU 在該指令的持續時間內完全控制高速緩存行。 停用總線鎖定與通常的理解相反,「lock」前綴不會導致 CPU 鎖定無限期的公車。執行後續指令後,鎖會被釋放。這允許 CPU 僅在...
    程式設計 發佈於2024-11-08
  • Top itemmap Scraper 你該知道的 4
    Top itemmap Scraper 你該知道的 4
    有時需要組織並包含在新網站設計中的資訊量可能會令人難以承受,從而使任務變得更加困難。網站地圖是一個有用的規劃工具,可以幫助組織和簡化網站上需要的材料並刪除任何不需要的頁面。此外,精心設計的網站地圖可為訪客提供正面的體驗,從而提高轉換率。 多年來,最好的網頁設計方法一直包括網站地圖;因此,它們並不是...
    程式設計 發佈於2024-11-08
  • 如何在 Web 瀏覽器中追蹤 XMLHttpRequest 的進度更新?
    如何在 Web 瀏覽器中追蹤 XMLHttpRequest 的進度更新?
    取得 XMLHttpRequest 的進度更新Web 瀏覽器為用戶端伺服器資料交換提供 XMLHttpRequest (XHR) 物件。雖然標準 XHR API 缺乏固有的進度追蹤功能,但有一些方法可以監控資料傳輸的進度。 上傳位元組數:XHR 公開 xhr.upload。 onprogress 事...
    程式設計 發佈於2024-11-08
  • 如何在 JavaScript 中向回呼函數傳遞參數?
    如何在 JavaScript 中向回呼函數傳遞參數?
    在JavaScript 中向回調函數傳遞參數在JavaScript 中,回呼函數通常用於在某個事件發生後執行特定任務。在定義這些函數時,通常需要向它們傳遞相關資料或參數。 傳遞參數的簡單方法是在呼叫回呼函數時將它們明確地設定為實參。例如:function tryMe(param1, param2) ...
    程式設計 發佈於2024-11-08
  • 與 Jira 和 LLM 的互動專案報告
    與 Jira 和 LLM 的互動專案報告
    For all projects I worked on, I used some sort of project management system where project scope was defined as a list of tasks (tickets), and progress...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中對不同格式的日期數組進行排序?
    如何在 PHP 中對不同格式的日期數組進行排序?
    PHP 日期數組排序在 PHP 中對日期數組進行排序可能很棘手,特別是當日期不是標準化格式時。 In根據您的具體情況,您有不同格式的日期數組,例如“11-01-2012”和“01-01-2014”。使用 asort 函數(按升序對數組進行排序)在這種情況下不起作用,因為它將每個日期視為字串並忽略年-...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3