如何获取数组中键的位置

时间:2011-09-18 06:15:04

标签: php arrays array-key

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

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

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

4 个答案:

答案 0 :(得分:83)

$i = array_search('blah', array_keys($array));

答案 1 :(得分:5)

如果您知道密钥存在:

PHP 5.4(Demo):

echo array_flip(array_keys($array))['blah'];

PHP 5.3:

$keys = array_flip(array_keys($array));
echo $keys['blah'];

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

$keys = array_flip(array_keys($array));
echo isset($keys['blah']) ? $keys['blah'] : 'not found' ;

这仅仅是array_search,但是使用了已存在于任何数组中的地图。我不能说它是否真的比array_search更好,这可能取决于场景,所以只是另一种选择。

答案 2 :(得分:0)

$keys=array_keys($array);会为您提供一个包含$array

键的数组

因此,array_search('blah', $keys);会在blah中为您提供$keys的索引,因此$array

答案 3 :(得分:-3)

用户array_searchdoc)。即,$ $ index = array_search('blah',$ array)