在每隔一个逗号后爆炸到断行
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);
当我回显我的 $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);