3

文字列変数があります$nutritionalInfo。これは、100gm、10mg、400cal、2.6Kcal、10% などの値を持つことができます。この文字列を解析し、値と単位の部分を 2 つの変数$value$unitこれに利用できるphp関数はありますか?または、phpでこれを行うにはどうすればよいですか?

4

3 に答える 3

6

このように preg_match_all を使用します

$str = "100gm";
preg_match_all('/^(\d+)(\w+)$/', $str, $matches);

var_dump($matches);

$int = $matches[1][0];
$letters = $matches[2][0];

浮動小数点値については、これを試してください

$str = "100.2gm";
preg_match_all('/^(\d+|\d*\.\d+)(\w+)$/', $str, $matches);

var_dump($matches);

$int = $matches[1][0];
$letters = $matches[2][0];
于 2013-04-23T08:03:09.893 に答える
4

正規表現を使用します。

$str = "12Kg";
preg_match_all('/^(\d+|\d*\.\d+)(\w+)$/', $str, $matches);
echo "Value is - ".$value = $matches[1][0];
echo "\nUnit is - ".$month = $matches[2][0];

デモ

于 2013-04-23T08:03:45.477 に答える