在每隔一个逗号后爆炸到断行

Explode to break line after every other comma

当我回显我的 $model 变量时,我试图在每隔一个逗号之后插入换行符,该变量包含从 mysql 数据库中提取的每个产品的许多不同模型的列表。我试图用 explode 来做,但失败了,因为它只显示了 2 的第一行(模型 1、模型 2)。列表中的其他模型缺失。到目前为止我所拥有的是:

   <?php 
$commasCount = count(explode(',', $model));
if ($commasCount > 2) {
    $model = preg_replace('~,[^,]*,~', "$0\n", $model);

}
echo $model;
 ?>

我的问题是 - 如何连续两个两个地显示完整的模型列表,而不仅仅是前两个记录?谢谢。

关于

I am trying to insert break line after every other comma

您可以将 preg_replace 与以下正则表达式一起使用:

$model = preg_replace('~,[^,]*,~', "$0\n", $model);

或者 - 如果您在 Web 浏览器中呈现输出:

$model = preg_replace('~,[^,]*,~', "$0<br/>", $model);

这里是 regex demo.

基本上,匹配逗号、逗号以外的 0+ 个符号(使用 [^,]*),然后再匹配一个逗号,然后将匹配的文本替换为自身 ([=14=]) 添加换行符。

您可以使用 array_chunk 将项目两两分组:

$models = array_chunk(explode(',', $model), 2);
$pairs = array_map(function ($i) {
    return implode(',', $i);
}, $models);
$result = implode(",\n", $pairs);