在多维数组中搜索特定值时,效率至关重要。传统的循环方法可能既麻烦又耗时,尤其是对于大型数组。
要优化此搜索,请考虑实现自定义函数:
function searchForId($id, $array) { foreach ($array as $key => $val) { if ($val['uid'] === $id) { return $key; } } return null; }
此函数迭代数组,比较每个元素的“uid”属性为指定的“id”。如果找到匹配项,则返回相应的数组键。
例如,使用以下数组:
$userdb = [ [ 'uid' => '100', 'name' => 'Sandra Shush', 'pic_square' => 'urlof100' ], [ 'uid' => '5465', 'name' => 'Stefanie Mcmohn', 'pic_square' => 'urlof100' ], [ 'uid' => '40489', 'name' => 'Michael', 'pic_square' => 'urlof40489' ] ];
调用 'searchForId(100, $userdb)' 将返回 0,调用 'searchForId(40489, $userdb)' 将返回 2。
PHP 版本中的替代方法5.5.0 及以上版本是使用 'array_search' 和 'array_column' 函数:
$key = array_search('100', array_column($userdb, 'uid'));
这个单行代码有效地执行与自定义函数相同的任务。
通过合并这些优化,您可以显着提高 PHP 中多维数组搜索的性能。
以上是如何高效地在 PHP 多维数组中搜索值?的详细内容。更多信息请关注PHP中文网其他相关文章!