1

foreach ループで結果を逆にしようとしていますが、array_reverse を使用してみることができることはわかっていますが、ループの出力は逆になりません。

結果は現在このようになっています

[new Date(2012, 05, 16), 630.10, 615.94],
[new Date(2012, 05, 15), 615.00, 603.75],
[new Date(2012, 05, 14), 608.50, 600.58],
[new Date(2012, 05, 11), 614.55, 604.77],
[new Date(2012, 05, 10), 616.19, 610.23],

私が望む出力は

[new Date(2012, 05, 10), 616.19, 610.23], 
[new Date(2012, 05, 11), 614.55, 604.77],
[new Date(2012, 05, 14), 608.50, 600.58],
[new Date(2012, 05, 15), 615.00, 603.75],
[new Date(2012, 05, 16), 630.10, 615.94],

これは私のコードです。

foreach($stockcontentex as $stockexplode){
    $stockex = explode(',',$stockcontentex[$i++]);
    $stockexdate = explode('-', $stockex[0]);
    $stockYear = $stockexdate[0];
    $stockMonth = $stockexdate[1];
    $stockDay = $stockexdate[2];
    $stockHigh = $stockex[2];
    $stockLow = $stockex[3];
    $_str .= '[new Date('.$stockYear.', '.$stockMonth.', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n";

    }

必要な追加情報があるかどうかはわかりません。

ありがとう

4

3 に答える 3

1

これを使用array_reverseしてから交換します:

$stockex = explode(',',$stockcontentex[$i++]);

これとともに:

$stockex = explode(',',$stockexplode);

または、次のように切り替えることもできます.=

 $_str = '[new Date('.$stockYear.', '.$stockMonth.
           ', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n" . $_str;
于 2012-05-17T14:49:20.023 に答える
0

私は個人的に@cwallenpooleの答えに行きますが、別の方法は次のとおりです。

$stockcount = count($stockcontentex);
for ($i = $stockcount; $i >= 0; $i--) {
    $stockex = explode(',',$stockcontentex[$i++]);
    $stockexdate = explode('-', $stockex[0]);
    $stockYear = $stockexdate[0];
    $stockMonth = $stockexdate[1];
    $stockDay = $stockexdate[2];
    $stockHigh = $stockex[2];
    $stockLow = $stockex[3];
    $_str .= '[new Date('.$stockYear.', '.$stockMonth.', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n";
}
于 2012-05-17T14:56:24.557 に答える
0

配列に対するループのトラバーサルを逆にするために、このアプローチを作成しました:
(この場合、シミュレートされた逆の foreach )

if(!empty($array)) {
    $value = end($array);
    $key = key($array);
    do {

        /**
         * Do your stuff here
         * Could be old code/stuff here that worked with foreach($array as $key => $value)
         */

        $value = prev($array);
        $key = key($array);
    } while($key !== null);
}

注:ちょっとハックです。ただし、逆にトラバースするすべての種類の (連想) 配列に対して機能するはずです。

于 2014-11-20T14:06:23.003 に答える