我有一个数组,我用它来显示表单下拉选项。我希望能够显示指定数组元素的键。
$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)
上面只会返回数组第一个元素的键。
答案 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";
}
您可以访问数组的键,并按照您的意愿进行操作。如您所述,这对于进行数据库转换会派上用场。