php如何从php中的字符串中删除最后一个字符[重复]

Posted

技术标签:

【中文标题】php如何从php中的字符串中删除最后一个字符[重复]【英文标题】:php how to strip last character from string in php [duplicate] 【发布时间】:2021-04-27 13:31:00 【问题描述】:

我试图从字符串中删除最后一个,,但没有成功。 我需要这样的字符串:2,3,4 但是当试图剥离最后一个, 时,我得到的输出是:234 而不是2,3,4

$alldays = array('2','3','4');

foreach($alldays as $day) 
    $string = $day.',';
    $string_without_last_comma = substr($string, 0, -1);
    echo $string; // output: 2,3,4,
    echo $string_without_last_comma; // output: 234 ( should be 2,3,4)


我怎样才能做到这一点?

【问题讨论】:

提示:implode. $string 仅存在于循环内,因此您要添加逗号,并在下一行删除。 implode 不是更好的解决方案吗? 是的,implode 存在,但对于更一般的情况:首先不要添加额外的逗号!这会变得更容易,如果你把逻辑反过来——不要在每个项目之后添加逗号,而是在之前添加逗号。然后您只需要处理第一项的情况 - 您可以通过检查 $string 是否仍然为空来轻松完成。如果是,那么您将要向其添加第一项,因此无需在其前面添加逗号。 我同意。 implode 解决了这个问题。谢谢 【参考方案1】:

回答

使用implode()

<?php
$alldays = array('2','3','4');
$string = implode(',', $alldays);
echo $string;

Try it online!

调试

让我们看一下代码

<?php
// Define alldays
$alldays = array('2','3','4');

// For each day
foreach($alldays as $day) 

    // Create(=) a string, add $day and a comma
    $string = $day.',';

    // Remove the last char from $string and save ('NOT ADD') in $string_without_last_comma
    $string_without_last_comma = substr($string, 0, -1);

    // Show string
    echo $string;

    // Show string with last char
    echo $string_without_last_comma;


// String here is the last char?
echo $string;

所以循环确实显示了所有这些值,但它们并没有相互添加,每次循环迭代只显示一次。

回顾;

    由于您正在执行 $string = $day.',';,因此您将覆盖 $string 每个循环 $string_without_last_comma 相同;你没有附加任何东西,只是覆盖 implode() 会给出想要的结果

修复原代码

注意:纯用于学习目的,我还是会推荐implode()

如果不使用implode(),我猜你是在尝试做这样的事情;

<?php

// Define alldays
$alldays = array('2','3','4');

// Create empty string
$string = '';

// For each day
foreach($alldays as $day) 

    // Add(.=) $day and a comma
    $string .= $day . ',';

    // Keep doing this logic for all the $day's in $alldays


// Now $string contains 2,3,4,
// So here we can create $string_without_last_comma by removing the last char
$string_without_last_comma = substr($string, 0, -1);

// Show result
echo $string_without_last_comma;

我们来了

    创建一个空字符串 循环遍历所有的日子 Add (.=) day 到 $string 并添加逗号 循环结束后,我们可以去掉最后一个逗号 显示结果

Try it online!

【讨论】:

感谢您的解释!对我真的有用和有帮助

以上是关于php如何从php中的字符串中删除最后一个字符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP 删除字符串中的最后一个逗号

如何从PHP和Javascript中的字符串中删除所有空格[重复]

如何从 PHP 中的字符串中删除电子邮件地址和链接?

从文件名字符串PHP中删除空格[重复]

如何从 PHP 中的字符串中删除意第绪语评分

PHP程序中删除字符串最后一个字符的三种方法