2013-06-23 80 views
0

我想獲得第一級陣列的密鑰提供第二級數組的值,但它不工作。 我在這裏做錯了什麼?非常感謝。array_keys問題獲取第一級陣列的密鑰提供第二級陣列的值

$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"); 

感謝凱爾...

回答

0

或者你做了一個錯字和意思的print_r(array_keys($linksUrls,'contact'))

print_r(array_keys($linksUrls,'contacto'))來替代,或者你真正想要做一次深層搜索,因爲array_keys功能不看到您作爲參數傳遞的數組內的數組(遞歸搜索)。

如果你想要做一個遞歸搜索看看在這裏:http://www.php.net/manual/en/function.array-keys.php#105890

+0

我想這樣做了深刻的搜索...我會看看這篇文章。 ..非常感謝路易斯... – user1925226

0

功能array_keys搜索只有一級。由於您使用的是2級數組,因此您需要使用搜索所有嵌套數組的函數。查看PHP.net頁面中的幾個選項,但是根據經驗我說這個one works好!

+0

謝謝MF ..我會看看這個... :) – user1925226

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"); 
+0

這是接近於我在找...這一個輸出「恩」..但我需要輸出「contacto」..或者如果我使用值「家」我需要輸出「索引」...我不知道它是否足夠清楚...因爲它是一個2級陣列我我會嘗試扭轉一點點這個功能,看看我能否得到一些結果..非常感謝凱爾...... :) – user1925226

+0

我重申了我上面的問題。對不起,我沒有很好地解釋我自己...謝謝... – user1925226

+0

這個凱爾怎麼樣? '函數搜索($ ARR,$ SRCH){ \t的foreach($改編爲$密鑰=> $ val)的{ \t \t的foreach($ VAL爲$ K => $ v)的{ \t \t \t如果( $ v == $ srch){ \t \t \t \t echo $ key; \t \t \t} \t \t} \t}} 搜索($ linksUrls, 「接觸」);' – user1925226

0
/* 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"); 
+0

感謝KyleK – user1925226