我有一个数组如下所示:

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_keys()获取一个包含所有唯一键的数组。

请注意,具有命名键的数组(如$arr)也可以使用数字索引访问,如$arr[0]。

http://php.net/manual/en/function.array-keys.php

其他回答

使用array_keys()获取一个包含所有唯一键的数组。

请注意,具有命名键的数组(如$arr)也可以使用数字索引访问,如$arr[0]。

http://php.net/manual/en/function.array-keys.php

key($arr);

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

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

如果名字是动态的,那么你必须有

$arr[$key]

这意味着$key包含键的值。

你可以使用array_keys()来获取数组的所有键,例如:

$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);

会给你

$x = array(0 => 'a', 1 => 'c');

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

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

参见PHP手册

是的,你可以,事实上php是少数提供这种支持的语言之一。

foreach($arr as $key=>$value)
{

}