簡體   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