[英]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.