PHP bir alfanümerik String Sayısal değerini almak için?

4 Cevap php

i bir işlevi veya değeri "2008 Gelir 5700390000 $" dır dize sayısal değeri almak için bir kod istiyorum. i istediğiniz çıktı 5700390000 $ olduğunu.

4 Cevap

Kesinlikle eminseniz dize her zaman yaparsın değerleri arasındaki mesafelerle birlikte YIL TÜR DEĞER olarak biçimlendirilmiş olacaktır:

$str = "2008 Revenue $5,700,390,000";

$exploded = explode(" ", $str);

$my_value = $exploded[2];

Bu yerleşik "floatval ()" fonksiyonu ve normal bir ifade kullanan bir hibrid - Bu daha karmaşık dizeleri ile ilgilenir.

function floatvalue($value) {
     return floatval(preg_replace('#^([-]*[0-9\.,\' ]+?)((\.|,){1}([0-9-]{1,2}))*$#e', "str_replace(array('.', ',', \"'\", ' '), '', '\\1') . '.\\4'", $value));
} 

Örneğin daha basit durumlar "32121.54BLAH" varsa, floatval () yardımı olmadan bu idare edecek.

Bu iyi bir kullanımı olabilir regular expressions (how to with PHP).

Ifadesi \$[\d,]+ iş gibi görünüyor.

Ben sadece C # biliyorum, ama ben [\ $ 0,0-9] gibi + basit haliyle, bir Regex kullanmak istiyorsunuz. Eğer kültür bilincinin (örneğin farklı para birimi sembolleri) gerekirse daha fazla mantığı eklemek gerekir. Umarım bu yardımcı olur.