2012-03-26 11 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

+1

@ManseUK:Stack Overflowは、Googleから回答できる質問を妨げるものではありません。このサイトと重複していますが、Googleが回答できる質問はありません。あなたの意見はコミュニティを表すものではありません。 –

+0

申し訳ありませんが、キーや値、オブジェクト配列だけを返す方法がないと検索する対象がわかりませんでした。あなたの答えはどうもありがとう。 –

答えて

7

array_searchがあります:あなたはユニークなキーを持っていることが確実な場合

$key = array_search(13, (array) $Numbers); 

http://ua2.php.net/array_search

+0

ありがとうございます。確かにこれは本当に簡単です... –

2

を参照してください。

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

そうでない場合は、array_search使用:あなたはルックアップの回数を行うには、一意の値を持っている場合

return array_search($knownValue, $array); 

最初のアプローチ方が良いかもしれません。 2番目の方法は、複数の値の場合に最初の一致キーを返します。

+0

ありがとう、それはフリップ機能があることを知って良いです。私は、すべての数字が文字列になると思う。例えば。 '4' => 13は '13' => '4' ... –

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を取得します。 –

関連する問題