我对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循环?
任何帮助将不胜感激,谢谢。
答案 0 :(得分:4)
你的意思是跨过其他所有条目吗?你应该只使用for循环:
for($i = 1; $i < count($x); $i += 2)
{
echo $x[$i] . '<br />';
}
答案 1 :(得分:3)
<?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 />";
}
?>
答案 2 :(得分:2)
如果通过&#34;迭代两次&#34;你的意思是&#34;跳过奇数条目&#34;:
$odd = FALSE;
foreach ($x as $value)
{
$odd = !$odd;
if($odd){
continue;
}
echo $value . "<br />";
}
(如果你选择使用foreach,你需要自己计算。)
答案 3 :(得分:1)
$cnt = 0;
foreach ($x as $value)
{
$cnt++;
if ($cnt % 2 == 1) continue;
echo $value . "<br />";
}
我想为@GordonM带来这个
使用for
只能假设数组是按顺序索引顺序工作,
一个数组,如
array(2=>'one', 1=>'two', 4=>'three' ...)
会把你拖到地狱
答案 4 :(得分:1)
也许这就是你想要的。
$t=count($x);
for($i=0;$i<$t;$i++){
if($i%2==0 && $i>0){
echo $x[$i]."<br>";
}
}
问候!
答案 5 :(得分:0)
<?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++;
}
?>