2

私は連想配列を持っています。このように繰り返している2つの次元

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

    }
}

これcurrent()は、ループが含まれている反復を取得しようとする試みです。これは私にそれを与えるべきだと思われます。ただし、そのページの他の場所には、あなたが好きな提案があります

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

echo 'sector : ' . current($order_information);ただ印刷するだけなので、現在の使い方が間違っているのではないかと思いますsector : Array

$index++ は悪い構文ですか? これを行うより良い方法はありますか?

4

1 に答える 1

4

答え

私が知る限りforeach、PHP のループには組み込みの数値カウンターはありません。

したがって、独自のカウンター変数が必要です。あなたのコード例はそれを行うのに非常によく見えます。

$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)

マニュアルを見て、考えを明確にしてください。

于 2012-11-21T20:53:02.253 に答える