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

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

Linda Hamilton
Linda Hamilton原創
2024-12-20 05:11:13129瀏覽

How to Efficiently Search for a Value in a PHP Multidimensional Array?

PHP 多維數組按值搜尋

操作多維數組時,經常需要根據對應的值來定位特定的鍵。此任務可以使用 PHP 中的各種技術來完成。

選項 1:使用 array_search() 和 array_column()

要使用此方法,您需要確保您使用的是 PHP版本 5.5.0或

$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));

解釋:

  • array_column() 從陣列中提取一列鍵。在這種情況下,它將“slug”值檢索到一個新陣列中。
  • array_search() 在傳回的陣列中搜尋所需的值 ('breville-one-touch-tea-maker-BTM800XL') array_column(),如果找到則提供相符的按鍵。

選項2:自訂函數array_walk_recursive()

function array_search_multidim($array, $column, $key) {
    $result = null;
    array_walk_recursive($array, function ($value, $index) use ($column, $key, &$result) {
        if ($index === $column && $value === $key) {
            $result = $index;
        }
    });
    return $result;
}
$key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');

說明:

  • 說明:
  • 所有元素,包括嵌套層級內的元素。
閉包函數根據指定列檢查每個值的索引($index) ($column) 並將其值 ($value) 與所需的鍵 ($key) 進行比較。

如果找到匹配項,則會將匹配元素的索引($index) 分配給$result 變數.

效能注意事項

    與array_walk_recursive()方法。不過,這兩種技術都適合大多數應用,具體選擇取決於個人需求。
  • 附加說明
這些方法要求金鑰與金鑰存在於同一層級。正在搜尋的值。 他們搜尋精確的值匹配;不支援部分匹配。

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

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