当您在PHP中知道键的值时,有没有一种快速返回键的方法?
例如,如果您有:
$Numbers = (object) array ( "0" => 0, "1" => 1, "2" => 3, "3" => 7, "4" => 13 );
有返回的方法吗:
echo re(13); // Print 4
我可以想到的一种方法是专门为此构建一个函数,但我想知道是否有更好的方法。
存在array_search
:
$key = array_search(13, (array) $Numbers);
请参阅http://ua2.php.net/array_search
正如其他一些人所提到的,array_search
会按照您的要求执行。但是,如果您想要一个包含值而不是仅包含第一个值的所有键的数组,则可以使用array_keys
。
print_r(array_keys($Numbers, 13)); // print Array ( [0] => 4 )
http://www.php.net/manual/en/function.array-keys.php
如果您确信您有唯一的密钥:
$flipped = array_flip($array);
$key = $flipped[$knownValue];
return $key;
否则,使用array_search:
return array_search($knownValue, $array);
如果进行多次查找并具有唯一值,则的第一种方法可能会更好。在多个值的情况下,第二种方法返回第一个匹配关键字。
http://php.net/array_search
echo array_search($valToSearch, (array) $Numbers);
http://php.net/manual/en/function.array-search.php