PHP的in_array在處理多維數(shù)組時(shí)怎樣操作

PHP
小樊
81
2024-09-20 00:25:28
欄目: 編程語言

在PHP中,in_array() 函數(shù)用于在一個(gè)一維數(shù)組中搜索一個(gè)值,它不能直接處理多維數(shù)組。如果要搜索多維數(shù)組中的值,你可以使用 array_search() 函數(shù)或者遞歸地遍歷多維數(shù)組。

以下是使用 array_search() 函數(shù)搜索多維數(shù)組的示例:

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

$search_value = 'target';

// 使用 array_search() 搜索多維數(shù)組
$result = array_search($search_value, $multi_array);

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

使用遞歸遍歷多維數(shù)組的示例:

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 "沒有找到值";
}

這兩個(gè)示例都會(huì)輸出:找到了值:level1[level2a][value]

0