搜索在数组中的键,递归 [英] Search for a key in an array, recursively
本文介绍了搜索在数组中的键,递归的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
private function find($needle, $haystack) {
foreach ($haystack as $name => $file) {
if ($needle == $name) {
return $file;
} else if(is_array($file)) { //is folder
return $this->find($needle, $file); //file is the new haystack
}
}
return "did not find";
}
哎,该方法搜索在关联数组的特定键,并返回与它相关联的值。这里也有一些问题的递归。任何线索?
Hey, this method searches for a specific key in an associative array and returns the value associated with it. There's some problem with the recursion. Any clue?
推荐答案
也许是矫枉过正,但它很有趣地使用RecursiveIterators:)
Maybe it's overkill, but it's funny to use RecursiveIterators :)
function recursiveFind(array $array, $needle)
{
$iterator = new RecursiveArrayIterator($array);
$recursive = new RecursiveIteratorIterator(
$iterator,
RecursiveIteratorIterator::SELF_FIRST
);
foreach ($recursive as $key => $value) {
if ($key === $needle) {
return $value;
}
}
}
这篇关于搜索在数组中的键,递归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文