私はPHPが初めてです
文字列の最後のコンマを削除したいのですが、どうすればよいですか。これが私のコードです:
<?php
$sub ="economic,maths,science";
$cap = explode(",",$sub);
foreach($cap as $new){
echo ucfirst($new).",";
}
?>
事前に感謝します。
シンプルなトリムで十分です:
$string = trim($string, " ,");
trim() 関数の 2 番目のパラメーターを使用すると、空白だけでなく、文字列から定義済みの文字を削除できることに注意してください。したがって、私の使用法では 2 つの文字が定義されています。スペース文字 " " とコンマ "," です。
そして、ループなしで単語を大文字にする場合:
$string = ucwords(trim($string, " ,"));
注: ucwords() 関数は空白を検索して単語の境界を定義するため、"apple,apple" は機能しませんが、"apple, apple" は機能します。
$string = ucwords(str_replace(array(","," "),array(", "," "),trim($string, " ,")));
が最善の解決策です。(最初の置換配列の 2 番目の要素には 2 つのスペースがあります。)
<?php
$sub ="economic,maths,science";
$cap = explode(",",$sub);
$cap2 = array();
foreach($cap as $new){
$cap2[] = ucfirst($new);
}
echo implode(",",$cap2)
?>
$sub ="economic,maths,science";
var_dump(implode(',', array_map('ucfirst', explode(",", $sub))));
これは、コンマだけでなく、単語の境界でも機能します。
preg_replace('~\b(\w+)\b~e', 'ucfirst("\\1")', "economic,maths,science");
次のように、ループなしでこれを行うことができます。
$string = 'test, test, test';
$pos = strrpos($string, ',');
$string[$pos] = '';
echo $string;
単純な正規表現は次のようになります。
preg_replace('/,([^,])$/','\1',$str);
<?php
$sub = "economic,maths,science";
$cap = explode(",",$sub);
$count = count($cap);
$i = 1;
foreach($cap as $newSub){
if($count>$i){
echo ucfirst($newSub).",";
}else{
echo ucfirst($newSub);
}
$i++;
}
?>