PHP foreach迭代两次而不是一次
我对php中的foreach函数有一个问题: 目前我有:PHP foreach迭代两次而不是一次,php,Php,我对php中的foreach函数有一个问题: 目前我有: <html> <body> <?php $x=array("one","two","three", "four", "five", "six", "seven", "eight"); foreach ($x as $value) { echo $value . "<br />"; } ?> 但是如何使foreach循环迭代两次而不是一次,从而得到: two four
<html>
<body>
<?php
$x=array("one","two","three", "four", "five", "six", "seven", "eight");
foreach ($x as $value)
{
echo $value . "<br />";
}
?>
但是如何使foreach循环迭代两次而不是一次,从而得到:
two
four
six
eight
这可能吗?还是只使用for循环更好
任何帮助都将不胜感激,谢谢。您的意思是要跳过其他条目吗?您应该只使用for循环:
for($i = 1; $i < count($x); $i += 2)
{
echo $x[$i] . '<br />';
}
用于($i=1;$i ;
}
如果“迭代两次”的意思是“跳过奇数项”,则会将您拖入地狱:
$odd=FALSE;
外汇($x为$value)
{
$odd=!$odd;
若有($奇数){
持续
}
回显$value.“
”;
}
(如果你选择使用foreach,你需要计算你自己。)也许这就是你想要的
$t=count($x);
for($i=0;$i<$t;$i++){
if($i%2==0 && $i>0){
echo $x[$i]."<br>";
}
}
$t=计数($x);
对于($i=0;$i0){
回声$x[$i]。“
”;
}
}
问候
<?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 />";
}
?>
在第一次输出后,这肯定会卡住吗$i
将变为2,然后在继续之后,$i++
将永远不会增加?Nick,谢谢你指出错误,我已经编辑了答案为什么你要这样做而不是使用for
循环?对我来说似乎真的很浪费。这只是一个工具,你可以随意使用。foreach不适合执行基于位置的操作,for不适合循环关联数组。为什么要这样做而不是使用for
循环?对我来说似乎真的很浪费。是的,但是OP的例子是基于一个统一索引的数组。在处理无序数组或关联数组(OP没有询问)时,您可以只执行array\u值
或而{(each($array))&&($data=each($array)){}
.OP实际上要求foreach解决方案。如前所述,假设顺序索引数组不理想。建议使用for
,并将增量2改为foreach
。
array(2=>'one', 1=>'two', 4=>'three' ...)
$odd = FALSE;
foreach ($x as $value)
{
$odd = !$odd;
if($odd){
continue;
}
echo $value . "<br />";
}
$t=count($x);
for($i=0;$i<$t;$i++){
if($i%2==0 && $i>0){
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 />";
}
?>
<?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++;
}
?>