按值搜索多维 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)); }
使用自定义递归函数
或者,您可以使用自定义函数来迭代递归数组,将“slug”值与目标进行比较value:
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; }
使用 array_walk_recursive()
此外,您可以使用 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_search() 方法通常优于其他技术,特别是对于大型数组。但是,考虑数组的结构至关重要,因为它需要索引子数组才能获得准确的结果。
摘要
array_search() 方法与 array_column 结合使用(),为按特定值搜索多维数组提供了高效且可读的解决方案。但是,如果您需要支持非索引子数组,递归方法提供了可行的替代方案。
以上是如何在多维 PHP 数组的'slug”键中高效搜索值?的详细内容。更多信息请关注PHP中文网其他相关文章!