我试图在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";
}
任何帮助表示赞赏,我不确定是否还有其他可能需要的信息。
感谢
答案 0 :(得分:1)
使用array_reverse
然后交换它:
$stockex = explode(',',$stockcontentex[$i++]);
用这个:
$stockex = explode(',',$stockexplode);
或者,您可以切换.=
:
$_str = '[new Date('.$stockYear.', '.$stockMonth.
', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n" . $_str;
答案 1 :(得分: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";
}
答案 2 :(得分: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);
}
注意:这有点像黑客攻击。但是它应该适用于你想要反向遍历的各种(关联)数组。