如何返回数组中某个值的键?

时间:2013-07-23 19:58:37

标签: php arrays key

我有一个数组,我用它来显示表单下拉选项。我希望能够显示指定数组元素的键。

$options = array(
                    '10' => '10 Results',
                    '15' => '15 Results',
                    '20' => '20 Results',
                    '25' => '25 Results',
                    '30' => '30 Results'
                );

如果我使用

$selected = '25';
echo $options[$selected]

这当然会返回“25结果”。我该如何返回该元素的键?

key($options)

上面只会返回数组第一个元素的键。

4 个答案:

答案 0 :(得分:4)

好吧,既然您正在定义密钥,那么这很简单......

echo $selected;

答案 1 :(得分:2)

http://php.net/manual/en/function.array-search.php

在这种情况下,您可以使用

 $key = array_search('25 Results',$options)

找到与该值匹配的键。

答案 2 :(得分:0)

一种简单的方法是使用array_flip:

$options = array(
                    '10' => '10 Results',
                    '15' => '15 Results',
                    '20' => '20 Results',
                    '25' => '25 Results',
                    '30' => '30 Results'
                );
$reverseoptions = array_flip($options);

然后执行$reverseoptions['30 Results']; //returns 30;

存在限制。你只能用一个简单的数组做到这一点;如果不做更多的代码来实现它,它就不能递归。 此外,如果任何值相似,则后者将替换第一个。

$test = array('1'=>'apple', '2'=>'pear','3'=>'apple');
$testflip = array_flip($test);
print_r($testflip);

//输出数组([apple] => 3 [梨] => 2)

我经常将数据库表示转换为可读字符串。

答案 3 :(得分:0)

array_search的替代方法是使用foreach循环!这是因为你事先知道密钥是什么。

foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}

您可以访问数组的键,并按照您的意愿进行操作。如您所述,这对于进行数据库转换会派上用场。