按值搜尋多維PHP 數組
在此場景中,您的任務是開發一個函數,用於在多維數組中搜尋特定值“slug”鍵內的值。以下是您可以考慮的搜尋流程和解決方案的細分:
使用 array_search() 和 array_column()
介紹 array_search() 和 array_column(>
介紹 array_search() 和 array_column(>function search_array($array, $key, $value) { return array_search($value, array_column($array, $key)); }
介紹 array_search() 和 array_column(>。 array_search() 有效地尋找數組中值的索引,而 array_column() 從多維數組中提取特定值,並使用這些提取的值來建立一個新數組。使用這些函數,您可以如下搜尋陣列:
使用自訂遞歸函數
function search_array_recursive($array, $key, $value) { foreach ($array as $subarray) { if (is_array($subarray)) { $found = search_array_recursive($subarray, $key, $value); if ($found !== false) { return $found; } } else if ($subarray[$key] == $value) { return $subarray; } } return false; }
或者,您可以使用自訂函數來迭代遞歸數組,將「slug」值與目標進行比較value:
使用array_walk_recursive()
function search_array_walk_recursive($array, $key, $value, &$found) { array_walk_recursive($array, function($subarray) use ($key, $value, &$found) { if (is_array($subarray)) { search_array_walk_recursive($subarray, $key, $value, $found); } else if ($subarray[$key] == $value) { $found = true; } }); }
此外,您可以使用array_walk_recursive() 遍歷數組並將搜尋邏輯應用於每個元素:
效能注意事項
array_search()方法通常優於其他技術,特別是對於大型陣列。但是,考慮數組的結構至關重要,因為它需要索引子數組才能獲得準確的結果。
摘要
array_search() 方法與 array_column 結合使用(),為以特定值搜尋多維數組提供了高效且可讀的解決方案。但是,如果您需要支援非索引子數組,則遞歸方法提供了可行的替代方案。以上是如何在多維 PHP 陣列的「slug」鍵中高效搜尋值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!