在嵌套多维数组中查找键值

编程入门 行业动态 更新时间:2024-10-10 17:31:54
本文介绍了在嵌套多维数组中查找键值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个这样的数组数据

I have an array data like this

$array = Array ( [abc] => Array ( ) [def] => Array ( ) [hij] => Array ( ) [media] => Array ( [video_info] => Array ( ) [video_variants] => Array ( ) [1] => Array ( ) [2] => Array ( ) ) )

我的代码看起来像这样

foreach($response->extended_entities->media as $media) { stuffs foreach ($media->video_info->variants as $video) { stuffs } }

我要检查数组中的"video_info键"是否可用

I want to check whether the "video_info Key is available in the array or not

我已经尝试过此功能,但是不起作用

I have tried this function but it doesn't work

function multi_array_key_exists($key, $array) { if (array_key_exists($key, $array)) return true; else { foreach ($array as $nested) { foreach ($nested->media as $multinest) { if (is_array($multinest) && multi_array_key_exists($key, $multinest)) return true; } } } return false; } if (multi_array_key_exists('video_info',$response) === false) { return "failed"; }

请帮助我

原始数组- pastebin/2Qy5cADF

推荐答案

这是我编写使用递归迭代器类检查数组键的函数的方法...

Here's my approach at writing a function to check the keys of your array using the Recursive Iterator classes...

function isArrayKeyAnywhere( $array, $searchKey ) { foreach( new RecursiveIteratorIterator( new RecursiveArrayIterator( $array ), RecursiveIteratorIterator::SELF_FIRST ) as $iteratorKey => $iteratorValue ) { if( $iteratorKey == $searchKey ) { return true; } } return false; } $array = [ 'abc'=>[], 'def'=>[], 'hij'=>[ 'media'=>[ 'video_info'=>[ 'video_variants'=>[ [], [] ] ] ] ] ]; var_dump( isArrayKeyAnywhere( $array, 'video_info' ) ); // true var_dump( isArrayKeyAnywhere( $array, 'foo_bar' ) ); // false

更多推荐

在嵌套多维数组中查找键值

本文发布于:2023-11-30 15:51:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1650582.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多维   嵌套   键值   组中

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!