在Array中的第3个符号后添加<br/>

时间:2016-11-22 12:36:13

标签: php

我有以下变量:

$checkbox = implode(';', $_POST['product']);

$复选框等于&#34;产品名称;价格;单位&#34;,如何在每一行后添加一个中断?

目前$复选框等于:

ASFP4040;18.95;1;ASFP4048;21;1;ASGS100100;25.45;1

我需要它像:

ASFP4040;18.95;1;
ASFP4048;21;1;
ASGS100100;25.45;1;

编辑:

我将其写入.TXT文件,\ n显示为文本,但实际上并未创建新行。

4 个答案:

答案 0 :(得分:2)

由于我不确定您的$_POST['products'] var的样子,您可能会喜欢以下选项之一:

如果您拥有像这样的单个数组元素中的所有内容

Array
(
    [0] => ASFP4040
    [1] => 18.95
    [2] => 1
    [3] => ASFP4048
    [4] => 21
    [5] => 1
    [6] => ASGS100100
    [7] => 25.45
    [8] => 1
)

您可以将数组拆分成块并将它们连接在一起

$data = implode("\n", array_map(function($chunk) {
    return implode(';', $chunk);
}, array_chunk($_POST['product'], 3)));

或者,如果你有一个如下所示的字符串数组:

Array
(
    [0] => ASFP4040;18.95;1
    [1] => ASFP4048;21;1
    [2] => ASGS100100;25.45;1
)

一个简单的内爆就足够了

$data = implode("\n", $_POST['product']);

答案 1 :(得分:0)

试试这个:

 echo "'".implode("','",$checkbox)."'<br>";

答案 2 :(得分:0)

您可以使用正则表达式执行此操作。只需将$str替换为您的$checkbox

$str = 'ASFP4040;18.95;1;ASFP4048;21;1;ASGS100100;25.45;1';
$str2 = preg_replace('/((?:(?:[^;]+);){3})/',"$1\n",$str);
echo $str2;

答案 3 :(得分:0)

正如Magnus Eriksson的评论中所解释的那样,您只需使用"\n"作为implode的第一个参数:

$checkbox = implode("\n", $_POST['product']);

请注意使用双引号("),以便将\n用作换行符。