php多维数组内查找元素返回下标

涛哥 PHP代码

要在 PHP 中查找多维数组内的元素并返回对应的下标,可以使用 array_search() 函数和递归的方式来实现。以下是一个示例代码:

function searchArray($needle, $haystack) {
    foreach ($haystack as $key => $value) {
        if ($needle === $value) {  // 判断当前元素是否等于要查找的值
            return $key;  // 如果匹配,则返回当前下标
        } elseif (is_array($value)) {  // 如果当前元素是数组,则进行递归查找
            $result = searchArray($needle, $value);
            if ($result !== false) {  // 如果递归查找成功,则返回结果
                return "$key.$result";  // 合并当前下标和递归结果,并返回
            }
        }
    }
    return false;  // 如果未找到匹配项,则返回 false
}

在这个php多维数组内查找元素返回下标示例代码中,我们定义了一个名为 searchArray() 的函数,该函数接受两个参数:要查找的值 $needle 和要查找的多维数组 $haystack。在函数内部,我们首先使用 foreach 循环遍历 $haystack 数组中的每个元素,判断当前元素是否等于要查找的值。如果匹配,则直接返回当前下标;如果当前元素是一个数组,则进行递归查找,直到找到匹配项或遍历完整个数组为止。

当递归查找成功后,我们需要将当前下标和递归结果合并,并返回一个字符串形式的结果,以区分多维数组中不同层级的元素。例如,如果要查找的值是 $needle = 'foo',而匹配项在二维数组的第二个子数组中,则返回的结果为 1.0,表示该元素位于 $haystack[1][0] 的位置。

最后,如果未找到任何匹配项,则函数返回 false