0

第 2 レベル配列の値を提供する第 1 レベル配列のキーを取得しようとしていますが、機能していません。ここで何が間違っていますか?どうもありがとう。

$linksUrls = array(
    'index'=>array('ar'=>'inicio','en'=>'home'),
    'portfolio'=>array('ar'=>'portfolio-de-fotografia/casas','en'=>'photography-portfolio/homes'),
    'contacto'=>array('ar'=>'contacto','en'=>'contact')
            );

/* This one will not work */
print_r(array_keys($linksUrls,'contact'));

/* This one will */
function search($arr, $srch){ 
                         foreach($arr as $key => $val){ 
                               foreach($val as $k => $v){
                                     if ($v == $srch){ echo $key; } 
                                } 
                             } 
} 

search($linksUrls, "contact");

カイルのおかげで…

4

4 に答える 4

0

ここにあなたのための機能があります....

配列と、キーを見つけたい値を入力できます...

function search($arr, $srch){
   foreach($arr as $key => $val){
   if(is_array($val))search($val, $srch);
   if($val==$srch){echo $key;}
   }
}

あとはそのまま使って…

 search($linksUrls, "contact");
于 2013-06-23T23:08:25.920 に答える
0

または、タイプミスをして意味した

print_r(array_keys($linksUrls,'contacto'))の代わりに print_r(array_keys($linksUrls,'contact'))、または array_keys 関数がパラメーターとして渡した配列内の配列を参照しないため、実際に深い検索を実行する必要があります (再帰検索)。

再帰的な検索を行いたい場合は、こちらをご覧ください: http://www.php.net/manual/en/function.array-keys.php#105890

于 2013-06-23T22:55:46.703 に答える
0

関数 array_keys は 1 レベルの深さだけを検索します。2 レベルの配列を使用しているため、ネストされたすべての配列を検索するための関数が必要になります。いくつかのオプションについては、PHP.net ページを確認してください。

于 2013-06-23T22:56:21.457 に答える