我有一个关于php中的foreach函数的问题:
目前我有:
<html>
<body>
<?php
$x=array("one","two","three", "four", "five", "six", "seven", "eight");
foreach ($x as $value)
{
echo $value . "<br />";
}
?>
哪些输出:
one
two
three
four
five
six
seven
eight
但是我如何使 foreach 循环迭代两次而不是一次,以便我得到:
two
four
six
eight
这可能吗?还是只使用 for 循环更好?
任何帮助将不胜感激,谢谢。
你的意思是跨过所有其他条目吗?你应该只使用 for 循环:
for($i = 1; $i < count($x); $i += 2)
{
echo $x[$i] . '<br />';
}
<?php
$i=1;
$x=array("one","two","three", "four", "five", "six", "seven", "eight");
foreach ($x as $value) {
$i++;
if($i%2==0){
continue;
}
echo $value . "<br />";
}
?>
如果"迭代两次"是指"跳过奇数条目":
$odd = FALSE;
foreach ($x as $value)
{
$odd = !$odd;
if($odd){
continue;
}
echo $value . "<br />";
}
(如果你选择使用foreach,你需要计算自己。
也许这就是你想要的。
$t=count($x);
for($i=0;$i<$t;$i++){
if($i%2==0 && $i>0){
echo $x[$i]."<br>";
}
}
问候!
$cnt = 0;
foreach ($x as $value)
{
$cnt++;
if ($cnt % 2 == 1) continue;
echo $value . "<br />";
}
我想把这个带给@GordonM
仅假设数组按顺序索引顺序排列,才可以使用for
,
一个数组,例如
array(2=>'one', 1=>'two', 4=>'three' ...)
会把你拖到地狱
<?php
$x=array("one", "two", "three", "four", "five", "six", "seven", "eight");
$i=2;
foreach ($x as $value) {
if( ($i % 2)==0 ) {
echo $value . "<br />";
}
$i++;
}
?>