4

这可能是一项简单的任务。但我是 PHP 新手。

我正在为特定目的创建从数据库获取的一串值。

如何从字符串中删除最后一个字符。

$str='';
foreach($dataarray as $value)
{
   $str.=$value."##";
 }

它给了我类似的字符串ABC##DEF##GHI##

我必须删除最后 2 个字符##

编辑:

已在此处显示示例代码。实际 y 数组是二维的。所以不能用implode()

4

9 回答 9

7

如果该implode方法不合适,则在foreach循环之后,您可以尝试以下功能之一:

http://www.php.net/manual/en/function.rtrim.php

$str = rtrim($str,'#');

http://php.net/manual/en/function.substr.php

$str = substr($str,-2);

如果你有一个二维数组,你仍然可以implode像这样使用函数:

$a = array();
foreach( $foo as $bar )
  foreach( $bar as $part )
    $a[] = $part;
$str = implode('##',$a);
于 2012-04-08T13:46:48.097 回答
6

你可能会更好地使用内而不是这个循环?

implode ( "##" , $dataarray  );
于 2012-04-08T13:46:40.647 回答
1

你可以使用 PHP 的函数implode

$str = implode("##", $dataarray);

于 2012-04-08T13:46:55.003 回答
1
<?php
$str = "1,2,3,4,5,";
echo chop($str,",");
?>

它将从字符串 $str 中删除最后一个逗号 (,)

于 2013-05-17T04:23:50.193 回答
1

使用 substr:

$str = substr($str,0, -2);

http://php.net/manual/en/function.substr.php

于 2015-01-30T09:58:08.657 回答
0

您可以Implode()用于制作这样的字符串,而不是手动制作

implode("##",$dataarray);

顺便说一句,您可以像下面这样删除最后一个字符:

substr($str,0,(strlen($str)-2));
于 2012-04-08T13:46:54.400 回答
0

有几种方法可以解决,但是:

$str = rtrim($str, "#");
于 2012-04-08T13:49:06.430 回答
0

http://php.net/manual/en/function.substr-replace.php

$newstr = substr_replace($longstr ,"",-2);

这将通过获取 $longstr 并删除最后两个字符来创建 $newstr。

于 2012-04-08T13:52:21.780 回答
0

也许

$str='';
$first = true;
foreach($dataarray as $value) {
     if(!$first) {
          $str .= "##";
     }
     else {
          $first = false;
     }
     $str .= $value;
 }
于 2012-04-08T14:04:26.717 回答