2013-06-23 43 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