繁体   English   中英

获取foreach循环中的数组索引

[英]Get index of array in foreach loop

鉴于:

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}

如何在没有单独的计数变量的情况下 ,在任何给定的迭代期间获取$rows的当前索引?

我尝试了什么:

foreach ($rows as $key => $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}

编辑以下

但是$key给了我$row的当前索引,而不是$rows的当前索引。

我想做的是:

foreach ($rows as $row) {
    if(current_index($rows) == 0){
        // do something
    }
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}

据我所知,PHP没有current_index()函数或类似的东西。

这是$rows样子:

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)

您将数组引用为数组。 这就是为什么它给你$row['id']

您需要使用$key因为这是$rows数组中当前索引的值。

当你使用foreach($rows as $key => $row)这就是它实际上正在做的事情:

  • $rows - 要循环的输入数组
  • $key - 第一维数组中当前位置的键
  • $row - 第一维数组中当前位置的值

那么$ key会给出当前数组键,这可能是字符串所以我认为以下将是可能的解决方案

$i=0;
foreach ($rows as $key => $row) { 
echo $row['id']; 
echo $row['firstname']; 
echo $row['lastname']; 
echo $i;
$i++;
}

使用关联数组

$rows = array("id"=>"id","firstname"=>"firstname","lastname"=>"lastname")
foreach ($rows as $key=>$row) {
    if($key == "firstname"){ 
        // do something
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM