如何获取数组中键的位置

SoL*_*oST 34 php arrays array-key

好的,所以我需要在这个数组中抓住'blah'的位置(位置不会总是一样).例如:

$array = (
    'a' => $some_content,
    'b' => $more_content,
    'c' => array($content),
    'blah' => array($stuff),
    'd' => $info,
    'e' => $more_info,
);
Run Code Online (Sandbox Code Playgroud)

所以,我希望能够返回'blah'键位于数组中的位置.在这种情况下,它应该返回3.我怎么能快速做到这一点?而且不会影响$ array数组.

zer*_*kms 89

$i = array_search('blah', array_keys($array));
Run Code Online (Sandbox Code Playgroud)

  • 有时答案是如此明显……:) (2认同)

hak*_*kre 6

如果您知道密钥存在:

PHP 5.4(演示):

echo array_flip(array_keys($array))['blah'];
Run Code Online (Sandbox Code Playgroud)

PHP 5.3:

$keys = array_flip(array_keys($array));
echo $keys['blah'];
Run Code Online (Sandbox Code Playgroud)

如果您不知道该密钥存在,您可以查看isset:

$keys = array_flip(array_keys($array));
echo isset($keys['blah']) ? $keys['blah'] : 'not found' ;
Run Code Online (Sandbox Code Playgroud)

这仅仅array_search是使用已经存在于任何数组中的映射.我不能说它是否真的好array_search,这可能取决于场景,所以只是另一种选择.