当我知道数值时,如何知道数组的关键字?

时间:2013-06-17 18:48:35

标签: php arrays search key

我有一个多阵列:

$bouton["modify-customer"] = array("fr"=>"liste-client", "en"=>"customer-list");
$bouton["create-customer"] = array("fr"=>"creer-client", "en"=>"create-customer");
$bouton["modify-item"] = array("fr"=>"liste-item", "en"=>"item-list");
$bouton["create-item"] = array("fr"=>"creer-item", "en"=>"create-item");
$bouton["modify-taxes"] = array("fr"=>"liste-taxes", "en"=>"taxes-list");
$bouton["create-taxes"] = array("fr"=>"creer-taxes", "en"=>"create-taxes");

在一个页面中,我有这个字符串:“监听税

我需要找到:“ tax-list

我怎样才能完成这项任务? ...

我知道我需要在这里找到正确的密钥,并且它是修改税收然后我可能会找到另一个值而不是fr,但{ {1}}一个。

我知道我不是很清楚,我的英语不是很好,但我希望你们能帮助我,我会留在网站上,这样我就可以回答你的问题并在未来与你交谈评价。

感谢。

5 个答案:

答案 0 :(得分:1)

你想循环遍历数组并搜索如下的值:

foreach($bouton as $key => $array){
    if( in_array("liste-taxes",$array)){
        echo $key . PHP_EOL;
        echo $bouton[$key]['en'];
    }
}

输出:

modify-taxes 
taxes-list

答案 1 :(得分:1)

array_walk($bouton, function ($val) use ($searched, $lang, &$result) {
    if (in_array($searched, $val))
        $result = $val[$lang];
});

其中$searched是您搜索的字符串,$lang您搜索的语言。 $result将包含最终值。

示例:

$bouton["modify-customer"]      = array("fr"=>"liste-client", "en"=>"customer-list");
$bouton["create-customer"]  = array("fr"=>"creer-client", "en"=>"create-customer");
$bouton["modify-item"]          = array("fr"=>"liste-item", "en"=>"item-list");
$bouton["create-item"]      = array("fr"=>"creer-item", "en"=>"create-item");
$bouton["modify-taxes"]     = array("fr"=>"liste-taxes", "en"=>"taxes-list");
$bouton["create-taxes"]     = array("fr"=>"creer-taxes", "en"=>"create-taxes");

$searched = "liste-taxes";
$lang = "en";

array_walk($bouton, function ($val) use ($searched, $lang, &$result) {
    if (in_array($searched, $val))
        $result = $val[$lang];
});

print $result;

答案 2 :(得分:1)

只需迭代你的数组并找到翻译:

$search = "liste-taxes";

$bouton["modify-customer"]      = array("fr"=>"liste-client", "en"=>"customer-list");
$bouton["create-customer"]  = array("fr"=>"creer-client", "en"=>"create-customer");
$bouton["modify-item"]          = array("fr"=>"liste-item", "en"=>"item-list");
$bouton["create-item"]      = array("fr"=>"creer-item", "en"=>"create-item");
$bouton["modify-taxes"]     = array("fr"=>"liste-taxes", "en"=>"taxes-list");
$bouton["create-taxes"]     = array("fr"=>"creer-taxes", "en"=>"create-taxes");

array_walk($bouton, function($v, $i) use($search) {
   if($v['fr'] === $search) {
       echo $v['en'];
   } 
});

答案 3 :(得分:0)

你可以建立一个方便的翻译功能....

function translate($array, $searchterm, $lan){
foreach($array as $key => $array){
if( in_array($searchterm,$array)){
    return $array[$lan];
}}}

然后只需将数组,术语和语言传递给它, 并且你将获得fr或en版本,具体取决于你指定的内容。

  echo translate($bouton,"taxes-list","fr");

答案 4 :(得分:0)

foreach($bouton as $key => $array){
    if( in_array("taxes-list",$array)){
        echo $key . PHP_EOL;
        echo $bouton[$key]['en'];
    }
}

感谢immulatin,php subuer01和bebi !!!工作就像一个魅力。