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 に答える