首页 > 后端开发 > php教程 > 如何高效地在 PHP 多维数组中搜索值?

如何高效地在 PHP 多维数组中搜索值?

Linda Hamilton
发布: 2024-12-20 05:11:13
原创
134 人浏览过

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');
登录后复制

说明:

  • array_walk_recursive() 迭代数组的所有元素,包括嵌套级别内的元素。
  • 闭包函数根据指定列检查每个值的索引($index) ($column) 并将其值 ($value) 与所需的键 ($key) 进行比较。
  • 如果找到匹配项,则会将匹配元素的索引 ($index) 分配给 $result 变量.

性能注意事项

与array_walk_recursive() 方法。不过,这两种技术都适合大多数应用,具体选择取决于个人需求。

附加说明

  • 这些方法要求密钥与密钥存在于同一级别。正在搜索的值。
  • 他们搜索精确的值匹配;不支持部分匹配。

以上是如何高效地在 PHP 多维数组中搜索值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板