1

配列のカンマ区切りの要素をエコーし​​ようとしています。

Element1, Element2, Element3, Element4, Element5, Element6

ただし、エコーされた要素をきれいに保つために、各行の各 2 番目の要素の後に新しい行に移動する必要がある場合があります。

Element1, Element2,
Element3, Element4,
Element5, Element6

私がやっているように:

<?php
$labels = Requisitions::getLabelNames($id);
foreach($labels as $label) { 
    $labels_array[] = $label['name'];
    }  
echo implode(' ,', $labels_array); 
?>

そして明らかに得ています:

Element1, Element2, Element3, Element4, Element5, Element6

では、行の 2 番目の要素ごとに、またはそれ以外の方法で改行を行うにはどうすれimplode()ばよいですか?

4

7 に答える 7

1

ファンシーのために:

$labels_array=array("Element 1","Element 2","Element 3","Element 4","Element 5","Element 6");
echo implode(",\n",array_map(function($i){ // change to ",<br />" for HTML output
    return implode(", ",$i);
},array_chunk($labels_array,2)));

オンラインデモ

于 2013-05-27T09:11:20.640 に答える
1

テストされていませんが、このようなものはうまくいくはずです

$i = 1;

foreach($labels as $label) {
   echo $label;

   // add a comma if the label is not the last
   if($i < count($labels)) {
      echo ", ";
   }

   // $i%2 is 0 when $i is even
   if($i%2==0) {
       echo "<br>"; // or echo "\n";
   }    
   $i++;
}
于 2013-05-27T09:01:08.600 に答える