首頁 後端開發 PHP問題 php二維陣列怎麼會找出某個值是否存在

php二維陣列怎麼會找出某個值是否存在

Apr 20, 2023 pm 01:55 PM

PHP 二維陣列尋找某個值是否存在

在 PHP 中,陣列是常用的資料型別之一,而二維陣列是比較常用的陣列形式之一。在實際開發中,我們經常需要在二維數組中查找某個值是否存在,本文將介紹幾種實作方式。

  1. 使用 foreach 迴圈

首先,我們可以使用 foreach 迴圈來遍歷整個二維數組,逐一尋找是否存在目標值。程式碼如下:

function search_array($array, $search_value)
{
    foreach($array as $value)
    {
        if(in_array($search_value, $value))
        {
            return true;
        }
    }
    return false;
}
登入後複製

上述程式碼中,我們定義了一個名為 search_array 的函數,該函數接收兩個參數,$array 表示要尋找的二維數組,$search_value 表示要尋找的值。

在函數體內,我們首先使用foreach 循環對二維數組進行遍歷,每次取出一個數組元素$value,然後使用in_array 函數檢查$value 中是否存在$search_value,如果存在,函數返回true ,表示查找到了目標值;否則繼續循環,直到陣列遍歷完畢。

附註:in_array() 函數用於在陣列中搜尋給定的值。如果找到則傳回 true,否則傳回 false。

  1. 使用 array_walk 函數

除了使用 foreach 迴圈以外,我們還可以使用 array_walk 函數來處理每個陣列元素,檢查是否有目標值。程式碼如下:

function search_array($array, $search_value)
{
    $found = false;
    array_walk($array, function($value) use (&$found, $search_value){
        if(in_array($search_value, $value))
        {
            $found = true;
        }
    });
    return $found;
}
登入後複製

上述程式碼中,我們首先定義了一個名為 search_array 的函數,該函數接收兩個參數:$array 表示要尋找的二維數組,$search_value 表示要尋找的值。我們也定義了一個變數 $found,表示是否找到目標值,初始化為 false。

然後,我們呼叫了array_walk 函數遍歷$array 數組,這裡我們使用了一個匿名函數作為回調函數,該函數接收$value 參數表示數組元素,使用use 語句將$found 和$search_value 傳遞進去,函數體內使用in_array 函數檢查$value 中是否存在$search_value,如果存在,則將$found 設為true,表示找到目標值。最後,函數傳回 $found 的值,表示是否找到目標值。

附註:array_walk() 函數對陣列中的每個元素套用使用者自訂函數。如果成功則回傳 TRUE,否則回傳 FALSE。

  1. 使用 array_reduce 函數

最後,我們也可以使用 array_reduce 函數來遍歷整個二維數組,逐一檢查每個數組元素是否包含目標值。程式碼如下:

function search_array($array, $search_value)
{
    $found = array_reduce($array, function($carry, $value) use ($search_value){
        return $carry || in_array($search_value, $value);
    }, false);
    return $found;
}
登入後複製

上述程式碼中,我們首先定義了一個名為 search_array 的函數,該函數接收兩個參數:$array 表示要尋找的二維數組,$search_value 表示要尋找的值。

然後,我們使用 array_reduce 函數遍歷整個二維數組,並使用匿名函數作為 callback 函數,其中 $carry 表示上一次迭代的返回值,$value 表示當前迭代到的數組元素。函數體內使用 in_array 函數檢查 $value 中是否存在 $search_value,如果存在,傳回 $carry || true,表示找到目標值;否則傳回 $carry || false,表示尚未找到目標值。最後,函數傳回 $found 的值,表示是否找到目標值。

附註:array_reduce() 函數用回呼函數迭代地將陣列簡化為單一的值。

總結

本文介紹了三種PHP 二維數組來找出某個值的實作方式,使用foreach 迴圈、array_walk 函數和array_reduce 函數分別遍歷二維數組,檢查其中是否包含目標值。在實際開發中,我們應根據實際情況選擇合適的實作方式,提高程式碼效率和執行速度。

以上是php二維陣列怎麼會找出某個值是否存在的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP數組去重有哪些最佳實踐 PHP數組去重有哪些最佳實踐 Mar 03, 2025 pm 04:41 PM

PHP數組去重有哪些最佳實踐

PHP數組去重可以利用鍵名唯一性嗎 PHP數組去重可以利用鍵名唯一性嗎 Mar 03, 2025 pm 04:51 PM

PHP數組去重可以利用鍵名唯一性嗎

PHP數組去重需要考慮性能損耗嗎 PHP數組去重需要考慮性能損耗嗎 Mar 03, 2025 pm 04:47 PM

PHP數組去重需要考慮性能損耗嗎

PHP數組去重有哪些優化技巧 PHP數組去重有哪些優化技巧 Mar 03, 2025 pm 04:50 PM

PHP數組去重有哪些優化技巧

如何在PHP中實現消息隊列(RabbitMQ,REDIS)? 如何在PHP中實現消息隊列(RabbitMQ,REDIS)? Mar 10, 2025 pm 06:15 PM

如何在PHP中實現消息隊列(RabbitMQ,REDIS)?

最新的PHP編碼標準和最佳實踐是什麼? 最新的PHP編碼標準和最佳實踐是什麼? Mar 10, 2025 pm 06:16 PM

最新的PHP編碼標準和最佳實踐是什麼?

我如何處理PHP擴展和PECL? 我如何處理PHP擴展和PECL? Mar 10, 2025 pm 06:12 PM

我如何處理PHP擴展和PECL?

如何使用反射來分析和操縱PHP代碼? 如何使用反射來分析和操縱PHP代碼? Mar 10, 2025 pm 06:12 PM

如何使用反射來分析和操縱PHP代碼?

See all articles