如何删除最后一个字符(从数组创建字符串时逗号)?

时间:2015-08-08 21:33:34

标签: php arrays string trim

我正在尝试删除此代码输出中的最后一个字符:

$images = "image1,image2,image3";
$images = explode(',', $images);

foreach ($images as $image) {
    echo "'$image',";
}}

当前输出:

'image1','image2','image3',
                        //^ See here

预期产出:

'image1','image2','image3'
                        //^ See here

8 个答案:

答案 0 :(得分:4)

保持简单并使用implode(),例如

<?php

    $images = "image1,image2,image3";
    $arr = explode(",", $images);
    echo "'" . implode("','", $arr) . "'";

?>

输出:

'image1','image2','image3'

答案 1 :(得分:2)

看起来我们还没有足够的答案。所以这是另一种微不足道的方法。

如果已经有逗号分隔列表,而且只需要引用,那么傻正则表达式就足够了:

height

这避免了手动循环事务或对结果进行后处理的需要。

答案 2 :(得分:1)

rtrim($string, ",")会删除尾随逗号。 rtrim

trim($string, ",")会删除尾随和引导逗号。 trim

查看您的代码,在您的情况下使用implode

非常有用
implode(",", $images)

Implode最后没有逗号,只在变量

之间

答案 3 :(得分:1)

选项1

循环浏览数据时,将其添加到字符串中,然后使用PHP's rtrim function删除结尾逗号。

$images = "image1,image2,image3";
$images = explode(',', $images);

foreach ($images as $image) {
    $string .= "'$image',";
}

echo rtrim($string, ',');

选项2

如果您真的想进入它,可以使用正则表达式和PHP preg_replace

$images       = "image1,image2,image3";
$patterns     = ['/(^)/', '/($)/', '/,/'];
$replacements = ["'", "'", "','"];

echo preg_replace($patterns, $replacements, $images);

这将消除循环,爆炸,爆炸等的需要。

答案 4 :(得分:1)

这将从$ string中删除尾随逗号。

rtrim($string, ",") would remove trailing commas.

我不知道如何将其标记为重复,但此处另一个也标记为重复(Remove the last character from string)。 回答来自我上面的链接

答案 5 :(得分:1)

删除字符串的最后一个字符,您可以使用substr()将其剪掉:

$text = "image,";
echo substr($text, 0, strlen($text) - 1); // "image"

它读取从零字符到最后一个字符减去一个的所有内容(即省略最后一个字符)。

如果您知道最后一个字符是什么,例如在image,(逗号)中,那么您可以修剪它:

$text = "image,";
echo rtrim($text, ','); // "image"

这将删除字符串末尾的所有,个字符。

答案 6 :(得分:1)

您好,您可以使用Implode。

cd ~/Desktop/where/the/input/images/are
for f in *.png; do 
  echo $f
  convert -gravity center "$f" "~/Desktop/path/to/watermark.png" -composite "~/Desktop/path/to/output/$f"
done

输出将是:

$images = "image1,image2,image3";
$images = explode(',', $images);
echo "'".implode("','",$images)."'";

答案 7 :(得分:1)

让我建议另一个解决方案。在我看来,它会更清楚一点:

$images = "image1,image2,image3";

$quotified = array_map(
                function($x) {
                    // Add quotes... You can also add trim() here 
                    // ...or do some another 'purifying' things
                    // ...that will be applied to each image list element
                    return "'$x'"; 
                }, 
                explode(',', $images)
            );

$images = implode(",", $quotified);