0

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

$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

4 回答 4

4

好吧,既然您正在定义密钥,那是一个非常简单的...

echo $selected;
于 2013-07-23T20:08:41.690 回答
2

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

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

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

找到与值匹配的键。

于 2013-07-23T20:02:21.450 回答
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 [pear] => 2 )

我经常这样做是为了将数据库表示形式转换为可读的字符串。

于 2013-07-23T20:03:34.387 回答
0

另一种方法array_search是使用 foreach 循环!这是为了以防您事先知道密钥是什么。

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

您可以访问数组的键并随心所欲地使用它们。正如您提到的,这对于进行数据库转换非常有用。

于 2013-07-23T20:08:44.883 回答