php - 命名键时获取 foreach 数字索引

标签 php foreach

这个问题只是为了好玩和好奇。

编辑:我的问题不同于 How to find the foreach index 因为在我的例子中 $key 已经是一个非数字值。

如果没有在 foreach 范围内递增的 foreach 之外的变量,就像通常的 $i 一样,当 $key 已经命名时,有没有办法获取项目的索引?

例子:

$myNumericIndexArray = ('foo', 'bar', 'go', 'habs');

foreach($myNumericIndexArray as $key => $value){
    //Here $key will be 0 -> 1 -> 2 -> 3
}

现在,如果我有:

$myNamedIndexArray = ('foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic');

foreach($myNamedIndexArray as $key => $value){
    //Here $key will be foo -> go -> CSGO_bestTeam
}

我可以,而不必:

$i=0;
foreach($myNamedIndexArray as $key => $value){
    //Here $key will be foo -> go -> CSGO_bestTeam
    $i++;
}

访问命名数组的索引。在 foreach 声明中声明的东西,例如 for 或 $key 的状态?

祝你好运。

最佳答案

如果你真的想要关联数组的索引数组而不是试试这个:

$myNamedIndexArray = ['foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic'];

$keys = array_keys($myNamedIndexArray);
foreach($myNamedIndexArray as $key => $value){
     echo array_search($key, $keys);
}

关于php - 命名键时获取 foreach 数字索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923570/

相关文章:

php - Smarty 如果 URL 包含

php - Soap 客户端,如何使用基本 HTTP 身份验证通过 HTTPS 调用函数

javascript - Promise.then 在前一个 .then 和 foreach 完成之前被解析

php - 按 id 选择第三个表

php - 使用 PHP 将 URLS 中的空格替换为 %20

php - 单个站点多个版本的单一代码库

perl - 在 foreach 循环中死亡时未按良好顺序执行的行

java - 使用 Java For-Each 循环迭代具有私有(private)访问权限的 ArrayList?

c# - LINQ 副作用

带有 ForEach 迭代问题的 Java Stream