PHP:从数组中获取密钥?

我相信这是超级简单的,并在PHP中的内置函数,但我还没有看到它。

以下是我目前正在做的事情:

foreach($array as $key => $value) { echo $key; // Would output "subkey" in the example array print_r($value); } 

我可以做一些类似于下面的事情,从而避免在每个foreach循环中编写“$ key => $ value”吗? (伪码)

 foreach($array as $subarray) { echo arrayKey($subarray); // Will output the same as "echo $key" in the former example ("subkey" print_r($value); } 

谢谢!

arrays:

 Array ( [subKey] => Array ( [value] => myvalue ) ) 

你可以使用key() :

 <?php $array = array( "one" => 1, "two" => 2, "three" => 3, "four" => 4 ); while($element = current($array)) { echo key($array)."\n"; next($array); } ?> 

使用array_search函数。

从php.net的例子

 $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); $key = array_search('green', $array); // $key = 2; $key = array_search('red', $array); // $key = 1; 
 $foo = array('a' => 'apple', 'b' => 'ball', 'c' => 'coke'); foreach($foo as $key => $item) { echo $item.' is begin with ('.$key.')'; } 
$array = array(0 => 100, "color" => "red"); print_r(array_keys($array));
$array = array(0 => 100, "color" => "red"); print_r(array_keys($array)); 

如果它是一个foreach循环,正如你在问题中所描述的那样,使用$key => $value是快速有效的。

如果你想在foreach循环,那么foreach($array as $key => $value)肯定是推荐的方法。 当语言提供它的时候,利用简单的语法。

另一种在foreach循环中使用key($ array)的方法是在循环结尾使用next($ array),只要确保每次迭代都调用next()函数(如果在循环中有复杂的分支)

尝试这个

 foreach(array_keys($array) as $nmkey) { echo $nmkey; }