我有以下变量:
$checkbox = implode(';', $_POST['product']);
$复选框等于"产品名称;价格;单位",如何在每一行后添加一个中断?
目前$复选框等于:
ASFP4040;18.95;1;ASFP4048;21;1;ASGS100100;25.45;1
我需要它像:
ASFP4040;18.95;1;
ASFP4048;21;1;
ASGS100100;25.45;1;
编辑:
我将其写入.TXT文件,\ n显示为文本,但实际上并未创建新行。
答案 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
用作换行符。