我有一个数组如下所示:

function example() {
    /* some stuff here that pushes items with
        dynamically created key strings into an array */

    return array( // now lets pretend it returns the created array
        'firstStringName' => $whatEver,
        'secondStringName' => $somethingElse
    );
}

$arr = example();

// now I know that $arr contains $arr['firstStringName'];

我需要找出$arr['firstStringName']的索引,以便我能够通过array_keys($arr)循环,并通过其索引返回键字符串'firstStringName'。我该怎么做呢?


当前回答

如果你有一个值并且想要找到键,可以像这样使用array_search():

$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);

$key现在将包含值“a”(即“first”)的键。

其他回答

key($arr);

将返回当前数组元素的键值

http://uk.php.net/manual/en/function.key.php

这是另一种选择

$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one']; 

如果需要返回具有相同值的数组元素,请使用array_keys()函数

$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));

如果你有一个值并且想要找到键,可以像这样使用array_search():

$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);

$key现在将包含值“a”(即“first”)的键。

如果我没理解错的话,你不能简单地用:

foreach($arr as $key=>$value)
{
  echo $key;
}

参见PHP手册