PHP - 从数组中获取元素的索引

Ale*_*lex 24 php arrays field

当我遍历数组时,如何获取当前元素编号?

我知道count(),但我希望有一个内置函数来获取当前字段索引,而不必添加额外的计数器变量.

像这样:

foreach($array as $key => value)
  if(index($key) == count($array) ....
Run Code Online (Sandbox Code Playgroud)

Zah*_*aka 52

你应该使用key()函数.

key($array)
Run Code Online (Sandbox Code Playgroud)

应该返回当前密钥.

如果您需要当前密钥的位置:

array_search($key, array_keys($array));
Run Code Online (Sandbox Code Playgroud)

  • OP需要一个位置,而不是一个关键.不需要像它一样获得kay;已经分配给$ key变量 (4认同)
  • 我会做它,因为它似乎对我来说太过分了.每次迭代在整个数组上增加2个循环! (2认同)

Bil*_*win 11

PHP数组都是整数索引和字符串索引.你甚至可以混合它们:

array('red', 'green', 'white', 'color3'=>'blue', 3=>'yellow');
Run Code Online (Sandbox Code Playgroud)

您希望索引的值是'blue'多少?是3吗?但这实际上是价值的指数'yellow',因此这将是一种模糊性.

另一种解决方案是将数组强制转换为整数索引的值列表.

foreach (array_values($array) as $i => $value) {
  echo "$i: $value\n";
}
Run Code Online (Sandbox Code Playgroud)

输出:

0: red
1: green
2: white
3: blue
4: yellow
Run Code Online (Sandbox Code Playgroud)


Gal*_*len 5

foreach() {
    $i++;
    if(index($key) == $i){}
    //
}
Run Code Online (Sandbox Code Playgroud)

  • 他说无需添加额外的计数器变量 (2认同)