PHP

PHP的in_array在处理多维数组时怎样操作

小樊
88
2024-09-20 00:25:28
栏目: 编程语言

在PHP中,in_array() 函数用于在一个一维数组中搜索一个值,它不能直接处理多维数组。如果要搜索多维数组中的值,你可以使用 array_search() 函数或者递归地遍历多维数组。

以下是使用 array_search() 函数搜索多维数组的示例:

$multi_array = [
    'level1' => [
        'level2a' => [
            'value' => 'target',
        ],
        'level2b' => [
            'value' => 'other',
        ],
    ],
    'level1b' => [
        'level2c' => [
            'value' => 'target',
        ],
    ],
];

$search_value = 'target';

// 使用 array_search() 搜索多维数组
$result = array_search($search_value, $multi_array);

if ($result !== false) {
    echo "找到了值:{$result}";
} else {
    echo "没有找到值";
}

使用递归遍历多维数组的示例:

function search_in_multi_array($array, $search_value) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $result = search_in_multi_array($value, $search_value);
            if ($result !== false) {
                return $result;
            }
        } else {
            if ($value === $search_value) {
                return $key . '[' . $value . ']';
            }
        }
    }
    return false;
}

$search_value = 'target';
$result = search_in_multi_array($multi_array, $search_value);

if ($result !== false) {
    echo "找到了值:{$result}";
} else {
    echo "没有找到值";
}

这两个示例都会输出:找到了值:level1[level2a][value]

0
看了该问题的人还看了