答えて
ここに1つの方法です:
$print=preg_replace('/^([^,]*).*$/', '$1', $print);
別
list($firstpart)=explode(',', $print);
これはあなたのために働く必要があります。
$r = (strstr($print, ',') ? substr($print, 0, strpos($print, ',')) : $print);
# $r contains everything before the comma, and the entire string if no comma is present
これをfの作品文字列にカンマが含まれていないと失敗します。 –
ああ、本当!それを処理する修正されたコード。 – schmilblick
あなたは正規表現を使用することができますが、それは常にコンマを持つ単一のペアリングになるだろうと、私はこれを行うだろう:
$printArray = explode(",", $print);
$print = $printArray[0];
あなたは$ printArray [0]を意味しませんか? –
はい、私はそれを修正しました。 –
$string="50 days,7 hours";
$s = preg_split("/,/",$string);
print $s[0];
なぜこれが投票されたのか分かりません。下の有権者に、説明する気がする? – ghostdog74
おそらく、あなたは少し残忍なpreg_split()を使ったからでしょうか? –
私はその過度な考えはしていません。それは問題を解決しませんでした。 – ghostdog74
ます。またcurrent機能を使用することができます。
をこのファミリーから$firstpart = current(explode(',', $print)); // will return current item in array, by default first
また、他の機能:
$nextpart = next(explode(',', $print)); // will return next item in array
$lastpart = end(explode(',', $print)); // will return last item in array
正規表現は単純な文字列操作のために少し過度のように思えますか? – schmilblick
正規表現は、蚊の問題のキャノンボールソリューションのビットです –
私はあなたの2番目の例が好きです。これは、explode( '、'、$ print)[0]を使うことができないという賢明な方法です。私はarray_shiftを使用していましたが、私はリストのアイデアがより好きです。 –