41

好的,所以我需要在这个数组中获取 'blah' 的位置(位置并不总是相同)。例如:

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

所以,我希望能够返回数组中“blah”键所在位置的数量。在这种情况下,它应该返回 3。我怎样才能快速做到这一点?并且完全不影响 $array 数组。

4

4 回答 4

106
$i = array_search('blah', array_keys($array));
于 2011-09-18T06:16:20.093 回答
8

如果您知道密钥存在:

PHP 5.4(演示):

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,这可能取决于场景,所以只是另一种选择。

于 2011-09-18T07:40:00.447 回答
0

$keys=array_keys($array);会给你一个包含键的数组$array

所以,array_search('blah', $keys);会给你 in 的索引,blah因此$keys$array

于 2011-09-18T06:24:24.243 回答
-3

用户array_search文档)。即,`$index = array_search('blah', $array)

于 2011-09-18T06:16:53.290 回答