最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

SEO心得admin54浏览0评论
本文介绍了在嵌套多维数组中查找键值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个这样的数组数据

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
发布评论

评论列表(0)

  1. 暂无评论