0

2 次元配列値の 1 つの列を検索し、見つかったときにキーを返すコードを作成しようとしています。現在、値を見つけてブール値の true または false を返す関数と、キーを返す関数 (動作していない関数) の 2 つの関数があります。検索関数の再帰的な性質を維持しながらキーを返すという意味で、2 つをマージしたいと思います。1つの機能で両方を行う方法は考えられませんが、キーファインダーが機能することは大歓迎です.

ありがとう

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 を返すように、メイン配列のインデックス/キーを返す必要があります。

4

2 に答える 2

2

これは機能します:

$array = array(array('hello', 6), array('world', 4));
$searchTerm = 'world';

foreach ($array as $childKey => $childArray) {
    if ($childArray['0'] == $searchTerm) {
        echo $childKey; //Your Result
    }
}
于 2012-04-16T19:46:43.720 に答える
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
于 2012-04-16T18:58:48.497 に答える