1

配列を再帰的に検索し、特定のキー「x」が発生したインスタンスの数を返すことができる PHP 関数はありますか (深さに関係なく)。

4

4 に答える 4

0

必要なことを行う単純な再帰関数を作成できます。私はこれをテストしませんでしたが、アイデアは次のようになります。

$count = 0;
function findKey($array,&$count){
    if(!empty($array)){
        foreach($array as $key => $childArray){
            if($key == 'keyImLookingFor'){
                $count++;
            }
            findKey($childArray,$count);
        }
    }
}

$count には、キーの出現回数が含まれている必要があります。繰り返しますが、これにはいくつかのクリーンアップが必要になる場合があります。

于 2013-06-08T18:48:45.440 に答える
0
$array = array(
    'key1' => 'val1',
    'key2' => 'val2',
    'key3' => array('key1' => 'val3'));

$count = 0;

function key_count($val, $key){
    global $count;
    if($key == "key1"){
        $count++;
    }
}

array_walk_recursive($array, 'key_count');
echo $count;
于 2013-06-08T18:51:26.840 に答える