php检查2级多维数组中是否存在值

标签 php arrays multidimensional-array

我有这个数组:

Array
(
    [01] => Array
        (
            [cat_id] => 15
            [offset] => 4951
        )

    [02] => Array
        (
            [cat_id] => 15
            [offset] => 4251
        )

    [03] => Array
        (
            [cat_id] => 15
            [offset] => 4001
        )

    [04] => Array
        (
            [cat_id] => 15
            [offset] => 4951
        )

    [05] => Array
        (
            [cat_id] => 15
            [offset] => 3301
        )
)

我有使用 array_key_exists 获取第一级 key 的代码;

if ((array_key_exists("01", $completed_steps))) {
     echo "Found 0!";
}

但是我现在想要获取 cat_id 值,如何在 2 级数组中做到这一点?

最佳答案

使用下面的代码,它将找到n层深度的 key 并搜索给定的 key

function multiKeyExists(array $arr, $key) {

    // is in base array?
    if (array_key_exists($key, $arr)) {
        return $arr[$key]['cat_id']; // returned cat_id 
    }

    // check arrays contained in this array
    foreach ($arr as $element) {
        if (is_array($element)) {
            if (multiKeyExists($element, $key)) {
                return $element[$key]['cat_id']; // returned cat_id
            }
        }

    }

    return false;
}

关于php检查2级多维数组中是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46541389/

相关文章:

php - 如何将复选框数组的值插入数据库,同时也从数据库检索复选框值?

php - 如何从表单字段中提取多行数据并插入到mysql中?

php - 该文件已使用PHP在Mysql中上传,但未在数据库中显示

c - C 中的动态多维字符串数组

javascript - 将整数转换为罗马数字 - 一定有更好的方法

c++ - 返回多维数组 C++

php - 从 MySQL LIKE 查询中获取匹配的上下文

arrays - 如何按日期排序,然后在日期内随机播放

algorithm - 来自采访 : Removing rows and columns in an n×n matrix to maximize the sum of remaining values

python - PyTorch 中 tensor.permute 和 tensor.view 的区别?