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

时间:2012-11-21 20:48:22

标签: php foreach indexing iterator

我有一个关联数组。我正在迭代的两个维度

foreach ( $order_information as $sector_index => $sector_value ){
echo 'sector : ' . current($order_information) ;
echo '<br>';
    foreach ( $sector_value as $line_index => $line_value ){

    }
}

current()是尝试获取循环所在的迭代。It seems like this应该给我这个。但是,在该页面的其他地方有一些建议,你只是喜欢

$index = 0
foreach ( $array as $key => $val ) {
    echo $index;
    $index++;
} 

我想知道我是否正在使用当前错误,因为echo 'sector : ' . current($order_information);只打印sector : Array

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

1 个答案:

答案 0 :(得分:4)

答案

据我所知,PHP中的foreach循环中没有构建数字计数器。

所以你需要自己的计数器变量。你的示例代码看起来非常好。

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

顺便说一下,$index++;没问题。

实施例

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

$array = array(
    "first"  => 100,
    "secnd" => 200,
    "third"  => 300,
);

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

输出将是。

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

电流功能

我认为你误解了current($array)。它为您提供内部数组指针指向的值,可以使用next($array)prev($array)end($array)移动它。

看一下manual,让思考清楚。