2013-07-23 61 views
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) 

上面只會返回數組第一個元素的鍵。

+2

PHP的array_search函數會爲你做到這一點。 –

+10

是不是'$選擇'的關鍵? – hjpotter92

+0

@Anthony是對的,或者你可以用foreach自己循環遍歷它們。 key()將返回數組當前索引的鍵。 – chandlermania

回答

4

好吧,既然你要定義的關鍵,這是一個非常簡單的一個...

echo $selected; 
+0

+ Smartass,但是真的:) –

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); 

//輸出陣列([蘋果] => 3 [梨] => 2)

我這樣做往往到數據庫的表示轉換爲可讀的字符串。

0

array_search另一種方法是使用foreach循環!這是萬一你不是事先知道關鍵是什麼。

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

您可以訪問陣列的按鍵並按照您的意願進行操作。正如你所提到的,這對於做數據庫轉換將派上用場。

相關問題