在嵌套多维数组中查找键值 [英] Find Key value in nested Multidimensional Array
本文介绍了在嵌套多维数组中查找键值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的数组数据
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";
}
请帮助我
原始数组- https://pastebin.com/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
这篇关于在嵌套多维数组中查找键值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文