Php 每隔一个逗号后分解为换行
当我回显$model变量时,我试图在每隔一个逗号后插入换行符,该变量包含从mysql数据库中取出的每个产品的许多不同模型的列表。我尝试使用Php 每隔一个逗号后分解为换行,php,regex,explode,Php,Regex,Explode,当我回显$model变量时,我试图在每隔一个逗号后插入换行符,该变量包含从mysql数据库中取出的每个产品的许多不同模型的列表。我尝试使用explode,但失败了,因为它只显示了第2行(model1,model2)。列表中的其他型号丢失。到目前为止,我得到的是: <?php $commasCount = count(explode(',', $model)); if ($commasCount > 2) { $model = preg_replace('~,[^,]*
explode
,但失败了,因为它只显示了第2行(model1,model2)。列表中的其他型号丢失。到目前为止,我得到的是:
<?php
$commasCount = count(explode(',', $model));
if ($commasCount > 2) {
$model = preg_replace('~,[^,]*,~', "\$0\n", $model);
}
echo $model;
?>
我的问题是-我如何显示模型的完整列表,而不仅仅是前两条记录?谢谢。关于
我试图在每隔一个逗号后插入换行符
您可以将preg\u replace
与以下正则表达式一起使用:
$model = preg_replace('~,[^,]*,~', "\$0\n", $model);
或者-如果在Web浏览器中呈现输出:
$model = preg_replace('~,[^,]*,~', "\$0<br/>", $model);
$model=preg\u replace(“~,[^,]*,~”,“\$0
,$model);
这是你的电话号码
基本上,匹配逗号、逗号以外的0+符号(使用
[^,]*
),然后再次使用逗号,然后将匹配的文本替换为自身($0
),添加换行符。您可以使用数组\u块
将项目两个一个地分组:
$models = array_chunk(explode(',', $model), 2);
$pairs = array_map(function ($i) {
return implode(',', $i);
}, $models);
$result = implode(",\n", $pairs);
你检查过$commasCount里面有什么吗?也许你会看到你应该改变什么也许
$model=preg\u replace('~,[^,]*,,“\$0\n”,$model)
会做什么?当我这样做时,它们会回到常规视图,我可以看到它们所有,但它们不是一排两个接一个。我的代码现在是:请提供示例输入和预期输出。@Nancy:我想你想要的是
而不是\n
,不是吗?@Nancy:用“\$0\n”
替换”\$0
“
。如果你在网络浏览器中呈现文本,那就行了。Wiktor和@Toto,谢谢你们,伙计们,现在可以了!