php内置于foreach循环当前的迭代中的php

php built in counter for what iteration foreach loop is currently in

我有一个关联数组。像这样迭代的二维

1
2
3
4
5
6
7
foreach ( $order_information as $sector_index => $sector_value ){
echo 'sector : ' . current($order_information) ;
echo '';
    foreach ( $sector_value as $line_index => $line_value ){

    }
}

current()试图得到循环所在的迭代。好像这个应该给我那个。然而,在那一页的其他地方,有一些建议你只是喜欢

1
2
3
4
5
$index = 0
foreach ( $array as $key => $val ) {
    echo $index;
    $index++;
}

我想知道我是否使用了错误的电流,因为echo 'sector : ' . current($order_information);只是打印sector : Array

$index++语法错误吗?有更好的方法吗?


回答

据我所知,在PHP的foreach循环中没有内置数字计数器。

所以你需要你自己的计数器变量。您的示例代码看起来非常适合这样做。

1
2
3
4
$index = 0;
foreach($array as $key => $val) {
    $index++;
}

顺便说一下,$index++;很好。

例子

下面是一个示例,说明哪个变量存储哪个值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$array = array(
   "first"  => 100,
   "secnd" => 200,
   "third"  => 300,
);

$index = 0;
foreach($array as $key => $val) {
    echo"index:" . $index .",";
    echo"key:"   . $key   .",";
    echo"value:" . $val   ."
"
;
    $index++;
}

结果就是这样。

1
2
3
index: 0, key: first, value: 100
index: 1, key: secnd, value: 200
index: 2, key: third, value: 300

电流函数

我想你误解了cx1〔2〕。它提供了一个内部数组指针指向的值,可以使用next($array)prev($array)end($array)移动该指针。

看一看手册,想清楚。