首頁 > 後端開發 > php教程 > 如何在 PHP 中有效搜尋多維數組中的值?

如何在 PHP 中有效搜尋多維數組中的值?

Patricia Arquette
發布: 2024-12-21 16:52:10
原創
857 人瀏覽過

How Can I Effectively Search for a Value in a Multidimensional Array in PHP?

使用 in_array() 進行多維數組搜尋

in_array() 函數擅長驗證線性數組中值是否存在。然而,當涉及多維數組時,它的功能就不足了。本文深入探討了 in_array() 在多維場景中的局限性,並介紹了一種遞歸解決方案。

in_array() 與多維數組的限制

$ a = array("Mac", "NT", "Irix", "Linux" );<br>if (in_array("Irix", $a)) echo "得到了Irix"; //有效<br>
登入後複製

相反,將in_array() 應用於多維數組,如下所示,將產生不準確的結果:

$b = array( array("Mac", "NT"), array("Irix", "Linux"));<br>if (in_array("Irix", $b)) echo "得到了Irix"; // 失敗<br>
登入後複製

多維數組搜尋的遞歸解決方案

為了有效地搜尋多維數組中的值,遞歸方法是必需的。以下程式碼片段為此目的定義了一個自訂函數:

<br>function in_array_r($needle, $haystack, $strict = false) {<pre class="brush:php;toolbar:false">foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) &amp;&amp; in_array_r($needle, $item, $strict))) {
        return true;
    }
}

return false;
登入後複製

}

用法

in_array_r() 函數的使用如下:

in_array_r() 函數的使用如下:

$b = array(array("Mac", "NT"), array("Irix", "Linux"));echo in_array_r("Irix", $b) ? 'found' : '找不到';<p></p>
登入後複製
此解決方案可以對多維數組中的值進行高效率、準確的搜尋操作。

以上是如何在 PHP 中有效搜尋多維數組中的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板