2012-03-26 162 views
2

當你知道它在PHP中的價值時,是否有快速的方法來返回一個鍵?PHP中(對象)數組(key => value)的反轉是什麼?

例如,如果您有:

$Numbers = (object) array ("0" => 0, "1" => 1, "2" => 3, "3" => 7, "4" => 13); 

有沒有辦法返回:

我能想到的
echo re(13); // Print 4 

一種方法是專門建立一個功能,但我是想知道是否有更好的方法。

+1

這將花費你用來創建這個問題用你喜歡的搜索引擎找到這個問題的答案....可憐的事半功倍! – ManseUK 2012-03-26 13:53:07

+1

@ManseUK:Stack Overflow不會阻止可以通過Google解答的問題。是的,從這個網站複製,但不是Google可以回答的問題。您的觀點不代表社區。 – 2012-03-26 17:47:50

+0

對不起,我不知道要搜索什麼,因爲我不知道有一種方法只返回鍵或對象數組的值。謝謝你的回答。 – 2012-03-28 14:08:13

回答

2

,如果你確信你有獨特的鍵:

$flipped = array_flip($array); 
$key = $flipped[$knownValue]; 
return $key; 

否則,使用array_search:

return array_search($knownValue, $array); 

第一種方法可以更好,如果你做了一些查詢,並具有獨特的價值。第二種方法返回多個值時的第一個匹配鍵。

+0

謝謝,很高興知道有翻轉功能。我猜,所有的數字都會成爲字符串。例如。 '4'=> 13將變成'13'=>'4'... – 2012-03-27 08:20:31

3

正如其他幾個人所說,array_search做你問。但是,如果您想要包含值而不是僅包含第一個值的所有鍵的數組,您可以使用array_keys

print_r(array_keys($Numbers, 13)); // print Array ([0] => 4) 

http://www.php.net/manual/en/function.array-keys.php

+0

是的,我知道鑰匙在這裏,否則我會得到NULL,我猜。 – 2012-03-27 08:23:22

相關問題