PHP 搜索多维数组 - 非关联



我正在尝试编写一段代码来搜索一列二维数组值并在找到键时返回键。 现在我有两个函数,一个用于查找值并返回布尔值 true 或 false,另一个(不起作用)用于返回键。 我想将两者合并,以保留查找函数的递归性质,但返回一个键。 我想不出如何在一个功能中同时做到这两点,但工作的钥匙查找器将不胜感激。

谢谢

function in_array_r($needle, $haystack, $strict = true) {
foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
        return true;
    }
}
return false;

}

function loopAndFind($array, $index, $search){
     $returnArray = array();
     foreach($array as $k=>$v){
           if($v[$index] == $search){   
                $returnArray[] = $k;
           }
     }
     return $returnArray;

}'

对不起,我的意思是添加一个例子。 例如:

Array [0]{
[0]=hello
[1]=6
}
[1]
{
[0]=world
[1]=4
}

我想通过 [x][0] 索引搜索数组以检查搜索词的每个单词字符串。 如果找到,它应该返回主数组中的索引/键,就像"world"返回 1

一样

这有效:

$array = array(array('hello', 6), array('world', 4));
$searchTerm = 'world';
foreach ($array as $childKey => $childArray) {
    if ($childArray['0'] == $searchTerm) {
        echo $childKey; //Your Result
    }
}

你已经拥有了第一个函数所需的一切。PHP 完成其余的工作:

$findings = array_map('in_array_r', $haystack);
$findings = array_filter($findings); # remove all not found
var_dump(array_keys($findings)); # the keys you look for

最新更新