4

我有一个数组

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

当我为此使用 foreach 循环时

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

输出是,

<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

4 回答 4

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";
}
于 2012-10-21T06:42:46.703 回答
2

对于 php,您可以执行以下操作:

for($i=0;$i<count($foo);$i+=2) {
    echo "<li>{$foo[$i]}, {$foo[$i+1]}</li>";
}
于 2012-10-21T06:36:43.830 回答
1

这可能是您需要的:

foreach($foo as $key=>$val) {
    if ($val&1) {
        echo '<li>' . $val;
        if($key == (count($foo)-1)){
            echo '</li>';
        }
    } else {
        echo ',' . $val . '</li>';
    }
}
于 2012-10-21T06:34:38.563 回答
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 
于 2012-10-21T06:36:40.413 回答