1

私はPHPが初めてです

文字列の最後のコンマを削除したいのですが、どうすればよいですか。これが私のコードです:

<?php
$sub ="economic,maths,science";
$cap = explode(",",$sub);
foreach($cap as $new){
    echo ucfirst($new).",";
    }
?>

事前に感謝します。

4

7 に答える 7

2

シンプルなトリムで十分です:

$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 つのスペースがあります。)

于 2012-04-30T00:26:58.963 に答える
1
<?php
$sub ="economic,maths,science";
$cap = explode(",",$sub);
$cap2 = array();
foreach($cap as $new){
    $cap2[] = ucfirst($new);
}
echo implode(",",$cap2)
?>
于 2012-04-29T14:22:51.587 に答える
1
$sub ="economic,maths,science";
var_dump(implode(',', array_map('ucfirst', explode(",", $sub))));
于 2012-04-29T14:24:40.677 に答える
0

これは、コンマだけでなく、単語の境界でも機能します。

preg_replace('~\b(\w+)\b~e', 'ucfirst("\\1")', "economic,maths,science");
于 2012-04-29T14:25:41.607 に答える
-1

次のように、ループなしでこれを行うことができます。

$string = 'test, test, test';
$pos = strrpos($string, ',');

$string[$pos] = '';

echo $string;
于 2012-04-29T14:22:59.407 に答える
-1

単純な正規表現は次のようになります。

preg_replace('/,([^,])$/','\1',$str);
于 2012-04-29T14:23:18.003 に答える
-2
<?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++;
}   
?>
于 2012-04-29T14:20:46.773 に答える