如何根据密钥获取数组值?

时间:2013-02-07 23:16:18

标签: php arrays

我试图根据密钥从数组中获取值。

我有

$array1{
 '0' =>'text1',
 '1' =>'text2',
 '2' =>'text3'
}


$array2{
 '0' =>'123',
 '1' =>'456',
 '2' =>'789'
}

 //$source could be text1,text2 or text3
 //I want to show 123, 456 or 789 based on the value passed in
       if(in_array($source, $array1)){
         $id=array_keys($array1,$source);
         echo $array2[$id];
       }

由于illegal offset type,我收到错误提示“$array2[$id]”。

有没有解决这个问题?非常感谢!

3 个答案:

答案 0 :(得分:3)

我认为你需要array_search。尝试:

if($id = array_search($source, $array1))
     echo $array2[$id];

答案 1 :(得分:2)

$array1 = array('0' => 'text1', '1' => 'text2', '2' => 'text3');
$array2 = array('0' => '123', '1' => '456', '2' => '789');

$source = "text2";

foreach ($array1 as $key => $value) {

    if ($value === $source) {
        echo "value = " . $array2[$key];
    }

}

输出:值= 456

答案 2 :(得分:1)

使用array_search代替array_keys。您需要具有值$source的第一个键,而不是具有所有具有该值的键的数组。