,當我讀到一個數組,我得到的值設定這樣"lat" : -37.8087928,
刪除不想要的字符。我只想要-37.8087928
部分。什麼是正確的方式來做到這一點。如何從字符串中PHP
我做了這樣:
$value = '"lat" : -37.8087928,';
$ex = explode(':', $value);
和
$ex2 = explode(',', $ex[1]);
最終resualt $ex2[0]
這是正確的或者什麼是正確的方法,謝謝大家
,當我讀到一個數組,我得到的值設定這樣"lat" : -37.8087928,
刪除不想要的字符。我只想要-37.8087928
部分。什麼是正確的方式來做到這一點。如何從字符串中PHP
我做了這樣:
$value = '"lat" : -37.8087928,';
$ex = explode(':', $value);
和
$ex2 = explode(',', $ex[1]);
最終resualt $ex2[0]
這是正確的或者什麼是正確的方法,謝謝大家
$value = '"lat" : -37.8087928,';
$final_value = preg_replace("/[^0-9.\-]/", "", $value);
上面的代碼將剝離不在數字,圓點或連字符的所有字符。
你可以刪除字符串中的所有空格
$stingname=" test manish ";
str_replace(" ","",$stingname);
echo $stingname;
結果
testmanish
這並不回答具體問題 – Popnoodles
通過爆炸是最好的方法 –
說的對象符號。你可能想嘗試
$locations = json_decode($value)
,那麼你可以像這樣訪問:
echo $locations->lat; // prints -37.8087928
,如果你不想做,你可以這樣做:
$locationArray = explode($value, ':'); // returns [0: 'lat', 1: -37.8087928]
echo trim($locationArray[1]); // prints -37.8087928. trim to get rid of whitespace
沒有問題在你的方法中。但你也可以使用這更容易理解:
$value = '"lat" : -37.8087928,';
echo $float = filter_var($value, FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);
希望這對你有所幫助!
你可以閱讀更多關於它here
這產生了錯誤的結果(32)。儘管FILTER_SANITIZE_NUMBER_FLOAT提供了預期的輸出,但使用filter_var是一個混亂的解決方案 - 它是一個功能遠不清晰的黑盒子。 – symcbean
Plz see編輯答案.. –
正確的方法取決於輸入字符串的變化 - 「像這樣的」不充分的解釋。
解析器就足夠了 - 但有沒有錯誤處理,也不應對不同格式的字符串的任何手段。使用jorge描述的正則表達式更加健壯,但可能無法應付某些輸入場景。
您所提供的輸入字符串看起來非常像JSON - 在這種情況下,你應該使用JSON解析器 - PHP提供了一個非常好的一個內置的 - 這將直接拒絕不符合的輸入。
人們暗示正則表達式的和爆炸,爲什麼呢?這很慢並且不需要。如果你有一個固定的字符串,可以用一些字符串函數做到這一點:
$value = '"lat" : -37.8087928,';
$result = trim(substr($value, strpos($value,":")+1)), " ,");
這是通過在該字符串找到:
和它。減去直到結束。然後用修剪刪除空格和逗號。如果逗號總是在那裏,則可以執行此操作,並刪除修剪:
$result = substr($value, strpos($value,":")+1), -1);// till -1 from the end
您是否得到正確的結果?那麼這是正確的方法。 (儘管在字符串的開頭可能有空白問題) – h2ooooooo
當然,有更簡單的方法:例如preg_match() –
這看起來像JSON。如何獲得數組,首先是因爲可能比提取JSON字符串然後將其作爲字符串進行操作要簡單得多。 – Popnoodles