我有一个看起来像这样的字符串:
$str = "Col1, Col2, Col3";
我的问题是如何让它看起来像这样
FORMAT(SUM('Col1'),2),FORMAT(SUM('Col2'),2),FORMAT(SUM('Col3'),2)
我正在尝试使用implode
和explode
,但它不适合我。
这是我的尝试:
$sample = "Col1, Col2, Col3";
$test = explode(",", $sample);
$test = "'" . implode("', FORMAT(SUM('", $test) . "), 2";
答案 0 :(得分:2)
$sample = "Col1,Col2,Col3";
$test= explode(',',$sample);
$_test = '';
foreach($test as $t){
$_test .= "FORMAT(SUM('$t'),2),";
}
$_test = rtrim($_test,',');
答案 1 :(得分:1)
我不知道你是否可以使用爆炸来实现这一点,但你肯定可以使用foreach循环。
$sample = 'Col1,Col2,Col3';
$result = '';
$parts = explode(',', $sample);
foreach ($parts as $part) {
$result .= 'FORMAT(SUM(' . $part . '), 2)';
$result .= (end($parts) !== $part) ? ', ' : '';
}
这会在爆炸数组的每个部分上运行,如果它不是最后一个元素,则添加所需的字符串和逗号。
您还可以使用array_walk来获得请求的结果:
$sample = 'Col1,Col2,Col3';
$parts = explode(',', $sample);
$str = '';
array_walk($parts, function ($element) use (&$str) {
$str .= 'FORMAT(SUM(' . $element . '), 2), ';
});
$result = rtrim($str, ', ');