0

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 ループを 1 回ではなく 2 回繰り返すようにするには、次のようにします。

two
four 
six 
eight

これは可能ですか?それとも、代わりに for ループを使用する方が良いですか?

どんな助けでも大歓迎です、ありがとう。

4

6 に答える 6

4

他のすべてのエントリをステップオーバーすることを意味しますか? for ループを使用する必要があります。

for($i = 1; $i < count($x); $i += 2)
{
    echo $x[$i] . '<br />';
}
于 2012-04-09T10:42:35.780 に答える
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 />";
    }
  ?>
于 2012-04-09T10:44:20.183 に答える
2

「2回反復する」とは、「奇数のエントリをスキップする」ことを意味する場合:

$odd = FALSE;
foreach ($x as $value)
{
    $odd = !$odd;
    if($odd){
        continue;
    }

    echo $value . "<br />";
}

( foreach を使用する場合は、自分自身をカウントする必要があります。)

于 2012-04-09T10:43:23.847 に答える
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' ...)

あなたを地獄に引きずり込みます

于 2012-04-09T10:42:50.713 に答える
1

おそらくこれはあなたが望むものです。

$t=count($x);
for($i=0;$i<$t;$i++){
   if($i%2==0 && $i>0){
      echo $x[$i]."<br>";
   }
}

よろしく!

于 2012-04-09T10:43:25.963 に答える