PHP:从数组获取密钥?

Ind*_*ial 53 php arrays key multidimensional-array

我确信这是PHP中的超级简单和内置函数,但我还没有看到它.

这就是我现在正在做的事情:

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

我可以做类似下面的事情,从而避免在每个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);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

数组:

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

)
Run Code Online (Sandbox Code Playgroud)

vto*_*nen 64

You can use key():

<?php
$array = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "four" => 4
);

while($element = current($array)) {
    echo key($array)."\n";
    next($array);
}
?>
Run Code Online (Sandbox Code Playgroud)

  • 嗨!但关键在foreach中不起作用,对吧? (7认同)
  • 我想补充一点,你可以使用key()ANYWHERE但是对于这个问题,在while循环中使用它是有意义的.您可以在只想要第一个/当前数组元素键的实例中使用key(). (4认同)
  • @Industrial`foreach`使用密钥...如果你想使用foreach,请执行以下操作:`foreach($ array as $ key => $ value){...}` (3认同)

Sar*_*raz 40

使用该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;
Run Code Online (Sandbox Code Playgroud)


Som*_*atd 32

$foo = array('a' => 'apple', 'b' => 'ball', 'c' => 'coke');

foreach($foo as $key => $item) {
  echo $item.' is begin with ('.$key.')';
}
Run Code Online (Sandbox Code Playgroud)


sus*_*ani 14


$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));


Dog*_*ert 6

如果它是foreach您在问题中描述的循环,则使用$key => $value快速且高效.