在PHP中,有時候我們需要從一個二維陣列中刪除幾個陣列。這個需求相對來說比較常見,例如我們需要忽略一些特定的數據,或是把某些不符合要求的數據從原始數據集中過濾出來。本文將介紹如何利用PHP內建函數和自訂函數來刪除二維陣列中的一些陣列。
一、PHP內建函數array_filter()刪除二維陣列中的幾個陣列
PHP內建函數array_filter()可以過濾掉一個陣列中的某些元素,傳回一個新的數組。在刪除二維數組中的幾個數組時,我們可以藉助此函數來實現。下面是一個例子:
$array = [ ['id' => 1, 'name' => 'Alice', 'gender' => 'female'], ['id' => 2, 'name' => 'Bob', 'gender' => 'male'], ['id' => 3, 'name' => 'Charlie', 'gender' => 'male'], ['id' => 4, 'name' => 'David', 'gender' => 'male'] ]; $exclude_ids = [2, 3]; $new_array = array_filter($array, function($item) use ($exclude_ids) { return !in_array($item['id'], $exclude_ids); }); print_r($new_array);
這個範例中,我們有一個包含4個子數組的二維數組$array,我們想要從中刪除id為2和3的子數組。我們定義了$exclude_ids數組來包含需要刪除的id值。然後我們使用array_filter()函數,並將其傳遞給一個閉包函數。這個函數檢查子數組中的'id'值是否在$exclude_ids數組中,如果在就回傳false,否則回傳true。此外,我們也使用了use語句,使得閉包函數能夠存取$exclude_ids數組。最終,我們得到了一個新的數組,僅包含'id'值不為2和3的子數組。
二、自訂函數刪除二維數組中的幾個數組
除了使用內建函數外,我們也可以寫自己的函數來刪除二維數組中的幾個數組。這樣可以更靈活地控制刪除的方式和條件。下面是一個例子:
function exclude_subarrays($array, $condition) { $new_array = []; foreach($array as $key => $subarray) { $should_exclude = true; foreach($condition as $k => $v) { if($subarray[$k] !== $v) { $should_exclude = false; break; } } if(!$should_exclude) { $new_array[] = $subarray; } } return $new_array; } $array = [ ['id' => 1, 'name' => 'Alice', 'gender' => 'female'], ['id' => 2, 'name' => 'Bob', 'gender' => 'male'], ['id' => 3, 'name' => 'Charlie', 'gender' => 'male'], ['id' => 4, 'name' => 'David', 'gender' => 'male'] ]; $exclude_condition = ['id' => 2, 'gender' => 'male']; $new_array = exclude_subarrays($array, $exclude_condition); print_r($new_array);
這個範例中,我們同樣有一個包含4個子數組的二維數組$array,需要刪除id為2且gender為male的子數組。我們寫了一個名為exclude_subarrays的函數來完成這個任務,這個函數接受兩個參數:原始數組$array和一個包含刪除條件的關聯數組$condition。在函數內部,我們建立了一個空的新陣列$new_array,然後使用foreach遍歷原始數組中的所有子數組。對於每個子數組,我們都定義了一個$should_exclude標誌,在初始化時設為true。我們又使用了一個foreach遍歷刪除條件$condition中的每個鍵值對。對於每個鍵值對,我們都檢查目前子數組中對應的鍵是否等於要求的值。如果等於,表示應該刪除這個子數組,於是將$should_exclude標誌設為false,並跳出迴圈。否則,繼續檢查下一個鍵值對。在完成整個$condition數組的檢查後,如果$should_exclude仍然為true,表示當前的子數組不需要被刪除,於是將它加入$new_array數組中。最後,將新數組傳回即可。
總結
以上就是兩種方式來刪除二維陣列中的幾個陣列。雖然內建函數array_filter()的寫法較短,但自訂函數比較靈活,在某些場合會更適用。在使用過程中,應根據實際情況靈活選擇。
以上是php怎麼刪除二維數組中的幾個子數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)