两个元素在一个foreach循环中打印而不是下一个循环开始

时间:2012-10-21 06:27:32

标签: php

我有一个数组

$foo = array(1,2,3,4,5,6,7,8,9); 

当我使用foreach循环时

foreach($foo as $val):  
    print '<li>'.$val.'</li>';  
endforeach 

Out put is,

<li> 1 </li>  
<li> 2 </li>  
<li> 3 </li>  
<li> 4 </li>  
<li> 5 </li>

但是我想要把那样的东西拿出来

<li> 1, 2 </li>  
<li> 3, 4 </li>  
<li> 5, 6 </li>  
<li> 7, 8 </li>  

有可能吗?

4 个答案:

答案 0 :(得分:4)

$foo = array(1,2,3,4,5,6,7,8,9);
foreach (array_chunk($foo, 2) as $chunk) {
    echo "<li>" . implode(', ', $chunk) . "</li>\n";
}

答案 1 :(得分:2)

对于php,你可以这样做:

for($i=0;$i<count($foo);$i+=2) {
    echo "<li>{$foo[$i]}, {$foo[$i+1]}</li>";
}

答案 2 :(得分:1)

这可能是您所需要的:

foreach($foo as $key=>$val) {
    if ($val&1) {
        echo '<li>' . $val;
        if($key == (count($foo)-1)){
            echo '</li>';
        }
    } else {
        echo ',' . $val . '</li>';
    }
}

答案 3 :(得分:0)

请试试这个:

$foo = array(1,2,3,4,5,6,7,8,9); 

$i=1;
$firstElement = "";

foreach($foo as $val):  

    if($i%2==0)
    {
        print '<li>'.$firstElement.','.$val.'</li>';  
    }
    else
    {
        $firstElement = $val;
    }   

    $i++;

endforeach