然后将Implode和Explode Array包装在示例数据中

时间:2017-11-20 07:23:09

标签: php arrays

我有一个看起来像这样的字符串:

$str = "Col1, Col2, Col3";

我的问题是如何让它看起来像这样

FORMAT(SUM('Col1'),2),FORMAT(SUM('Col2'),2),FORMAT(SUM('Col3'),2)

我正在尝试使用implodeexplode,但它不适合我。

这是我的尝试:

$sample = "Col1, Col2, Col3";
$test = explode(",", $sample);
$test = "'" . implode("', FORMAT(SUM('", $test) . "), 2";

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, ', ');