插件窝 干货文章 php 查询多维数组

php 查询多维数组

多维 array 数组 函数 58    来源:    2025-03-19

在 PHP 中,查询多维数组通常涉及遍历数组或使用递归函数来查找特定的值或键。以下是一些常见的方法来查询多维数组:

1. 使用 foreach 循环遍历多维数组

$array = [
    'fruit' => ['apple', 'banana', 'cherry'],
    'vegetable' => ['carrot', 'lettuce', 'potato'],
    'meat' => ['chicken', 'beef', 'pork']
];

foreach ($array as $category => $items) {
    echo "$category: ";
    foreach ($items as $item) {
        echo "$item ";
    }
    echo "\n";
}

2. 使用 array_walk_recursive 函数

array_walk_recursive 函数可以对多维数组中的每个元素应用用户自定义的函数。

$array = [
    'fruit' => ['apple', 'banana', 'cherry'],
    'vegetable' => ['carrot', 'lettuce', 'potato'],
    'meat' => ['chicken', 'beef', 'pork']
];

array_walk_recursive($array, function($value, $key) {
    echo "$key: $value\n";
});

3. 使用递归函数查询特定值

如果你需要查找多维数组中的特定值,可以使用递归函数。

function searchValue($array, $search) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $result = searchValue($value, $search);
            if ($result !== false) {
                return $result;
            }
        } else if ($value === $search) {
            return $key;
        }
    }
    return false;
}

$array = [
    'fruit' => ['apple', 'banana', 'cherry'],
    'vegetable' => ['carrot', 'lettuce', 'potato'],
    'meat' => ['chicken', 'beef', 'pork']
];

$result = searchValue($array, 'cherry');
if ($result !== false) {
    echo "Found at key: $result";
} else {
    echo "Not found";
}

4. 使用 array_search 函数

array_search 函数可以用于在一维数组中查找值,并返回对应的键。对于多维数组,可以结合递归使用。

function searchMultiArray($array, $search) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $result = searchMultiArray($value, $search);
            if ($result !== false) {
                return $result;
            }
        } else if ($value === $search) {
            return $key;
        }
    }
    return false;
}

$array = [
    'fruit' => ['apple', 'banana', 'cherry'],
    'vegetable' => ['carrot', 'lettuce', 'potato'],
    'meat' => ['chicken', 'beef', 'pork']
];

$result = searchMultiArray($array, 'cherry');
if ($result !== false) {
    echo "Found at key: $result";
} else {
    echo "Not found";
}

5. 使用 array_column 函数

如果你需要从多维数组中提取特定列的值,可以使用 array_column 函数。

$array = [
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane'],
    ['id' => 3, 'name' => 'Doe']
];

$names = array_column($array, 'name');
print_r($names);

这些方法可以帮助你在 PHP 中查询和操作多维数组。根据你的具体需求选择合适的方法。