我正在尝试编写一段代码来搜索一列二维数组值,并在找到它时返回密钥。现在我有两个函数,一个用于查找值并返回一个布尔值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
答案 0 :(得分:2)
这有效:
$array = array(array('hello', 6), array('world', 4));
$searchTerm = 'world';
foreach ($array as $childKey => $childArray) {
if ($childArray['0'] == $searchTerm) {
echo $childKey; //Your Result
}
}
答案 1 :(得分:1)
在第一个功能中,您已经拥有了所需的一切。 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