2012-04-08 13 views
4

これは簡単な作業かもしれません。しかし、私はPHPが初めてです。最後の文字を文字列から削除する方法

私は特定の目的のためにデータベースから値の文字列を作成しています。

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

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

それは私が最後の2つの文字##

EDITを削除する必要が私にABC##DEF##GHI##

のような文字列を与える:

は、ここではサンプルコードを示しています。 actull配列は2Dです。 so cant use implode()

答えて

7

、その後、あなたのforeachループの後、あなたは、これらの機能の1試すことができます。

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 arrを持っているならAY、あなたはまだこのようimplode FUNCを使用することができます。

$a = array(); 
foreach($foo as $bar) 
    foreach($bar as $part) 
    $a[] = $part; 
$str = implode('##',$a); 
6

このループの代わりにimplodeを使う方が良いかもしれませんか? implode方法が適切でない場合

implode ("##" , $dataarray ); 
+0

くそー、あなたは2でした秒速く:-) – Mortana

+0

を参照してください。 ated質問です。配列は2Dです –

+0

私はその2秒とは思っていません... 20秒の遅延を見て、突然人が同じ回答を投稿しました...(コピー&ペーストであったかどうかわかりません) – Baba

0

あなたは、このような文字列を作る代わりに、あなたは以下のように行うことができます最後の文字を除去するためにところで、手動

implode("##",$dataarray); 

それを作るためにImplode()を使用することができます。

substr($str,0,(strlen($str)-2)); 
+1

2番目のオプション – BenOfTheNorth

+0

にはsubstr($ str、0、-2)が良いでしょうが、私はそれを認識していませんでした。私に更新をありがとう –

1

あなたは、PHPの関数を使用することができimplode

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

0

あり、それについて移動するいくつかの方法がありますが、:

$str = rtrim($str, "#"); 
0

たぶん

$str=''; 
$first = true; 
foreach($dataarray as $value) { 
    if(!$first) { 
      $str .= "##"; 
    } 
    else { 
      $first = false; 
    } 
    $str .= $value; 
 } 
1
<?php 
$str = "1,2,3,4,5,"; 
echo chop($str,","); 
?> 
これは、文字列$ strのから最後のコンマ(、)を削除します

関連する問題