4

簡単な作業かもしれません。しかし、私はPHPが初めてです。

特定の目的でデータベースから取得する値の文字列を作成しています。

文字列から最後の文字を削除する方法.

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

それは私に次のような文字列を与えますABC##DEF##GHI##

最後の2文字を削除する必要があります##

編集:

ここにサンプルコードを示しています。実際の y 配列は 2D です。だから使えない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);

2D配列がある場合でも、次のimplodeような関数を使用できます。

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

このループの代わりにimplodeを使用する方が良いかもしれませんか?

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 に答える
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 を取得して最後の 2 文字を削除することにより、$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 に答える