当我读取数组时,我得到的值设置为"lat" : -37.8087928,
。我只想-37.8087928
部分。这样做的正确方法是什么。
我是这样做的:
$value = '"lat" : -37.8087928,';
$ex = explode(':', $value);
和
$ex2 = explode(',', $ex[1]);
最终resualt $ex2[0]
这是正确的还是正确的方法,谢谢大家
答案 0 :(得分:1)
$value = '"lat" : -37.8087928,';
$final_value = preg_replace("/[^0-9.\-]/", "", $value);
上面的代码将删除所有不是数字,点或连字符的字符。
答案 1 :(得分:0)
您可以删除字符串中的所有空格
$stingname=" test manish ";
str_replace(" ","",$stingname);
echo $stingname;
结果
testmanish
答案 2 :(得分:0)
这是对象表示法。你可能想尝试
$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
答案 3 :(得分:0)
您的方法没有问题。但你也可以使用这个更容易理解的东西:
$value = '"lat" : -37.8087928,';
echo $float = filter_var($value, FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);
希望这对你有帮助!
您可以阅读更多相关信息here
答案 4 :(得分:0)
正确的方法取决于输入字符串的可变性 - "像这样"不是一个充分的解释。
您的解析器足够 - 但没有错误处理,也没有任何处理格式不同的字符串的方法。使用jorge描述的正则表达式更加强大,但可能无法应对某些输入场景。
您提供的输入字符串看起来非常像JSON - 在这种情况下您应该使用JSON解析器 - PHP内置一个非常好的 - 它将简单地拒绝不符合要求的输入。
答案 5 :(得分:0)
人们建议使用正则表达式和爆炸,为什么?这很慢,不需要。如果你有一个固定的字符串,你可以使用一些字符串函数:
$value = '"lat" : -37.8087928,';
$result = trim( substr($value, strpos($value,":")+1) ), " ,");
这可以通过查找该字符串中的:
并将其减去直到结束来实现。然后使用修剪删除空格和逗号。如果逗号总是在那里,你可以这样做,并删除修剪:
$result = substr($value, strpos($value,":")+1), -1 );// till -1 from the end