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


How to remove last character (comma when creating a string from an array)?

我试图删除这段代码输出中的最后一个字符:

$images = "image1,image2,image3";
$images = explode(',', $images);
foreach ($images as $image) {
    echo "'$image',";
}}
当前输出:

'image1','image2','image3',
                        //^ See here
预期输出:

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

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

<?php
    $images = "image1,image2,image3";
    $arr = explode(",", $images);
    echo "'" . implode("','", $arr) . "'";
?>
输出:

'image1','image2','image3'

看来我们还没有足够的答案。这是另一个简单的方法

如果已经有一个逗号分隔的列表,它只需要引号,那么一个愚蠢的regex就足够了:

$images = "image1,image2,image3";
echo preg_replace("~[^,]+~",    "'$0'",   $images);
#                     ↑           ↑
#           anything but commas   ↑
#                            wrap in quotes

这样可以避免手动循环,或者对结果进行后处理。

这将从$字符串中删除末尾的逗号。

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

我不知道如何将其标记为重复,但这里是另一个也被标记为重复的(从字符串中删除最后一个字符)。答案来自我上面的链接

rtrim($string, ",")将删除尾随逗号。空白

trim($string, ",")将去掉尾逗号和前导逗号。修剪

看看你的代码,在你的情况下,使用内爆 将是有用的
implode(",", $images)

Implode只在变量

之间使用逗号。

要删除字符串的最后一个字符,可以使用substr():

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

它读取从第0个字符到最后一个字符 - 1 (即省略最后一个字符)的所有内容。

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

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

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

你好,你可以使用内爆。

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

的输出将是:

'image1','image2','image3'

选项1

当循环遍历数据时,将其添加到字符串中,然后使用PHP的rtrim函数删除末尾的逗号。

$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);

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

让我提出另一个解决方案。在我看来会更清楚一些:

$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);