詳解php中空字符串和0之間的關(guān)系
前言
最近在處理關(guān)于經(jīng)緯度的問題時(shí),在建表的時(shí)候,選擇用字符串varchar存儲(chǔ)經(jīng)度、緯度。為以后的問題埋下伏筆。下面話不多說,我們來看看詳細(xì)的介紹。
$_x=$row["x"]; $_y=$row["y"]; if(isset($_x) && isset($_y)){ if($row["y"] == 0 || $row["x"] == 0){ $d=$this->getDistance($row["y"],$row["x"],$y,$x); }elseif(!empty($row["y"]) && !empty($row["x"])){ $d=$this->getDistance($row["y"],$row["x"],$y,$x); }else{ continue; } if($d < $radius){ $list[]= $data[$key]; } }
其實(shí)我是想要 過濾掉 經(jīng)緯度為空的數(shù)據(jù),保留經(jīng)度或緯度為0的數(shù)據(jù),但發(fā)現(xiàn)在打印列表數(shù)據(jù)時(shí),總是包含 經(jīng)緯度為空的數(shù)據(jù)。
研究了好久,才發(fā)現(xiàn)經(jīng)緯度字段是字符類型,當(dāng)字段為空時(shí)進(jìn)行 $row['y']== 0
判斷時(shí),PHP進(jìn)行自動(dòng)轉(zhuǎn)換,所以$row['y']== 0
判斷在空字符的情況下是正確的。于是總是包含經(jīng)緯度為空的數(shù)據(jù)。那么怎么去掉經(jīng)緯度為空的數(shù)據(jù)呢?
其實(shí)很簡單如下:
if(isset($_x) && isset($_y)){ if($row["y"] == "0" || $row["x"] == "0"){ $d=$this->getDistance($row["y"],$row["x"],$y,$x);
立即過濾掉經(jīng)緯度為空的數(shù)據(jù)。
下面是對(duì)preg_replace_callback進(jìn)行代碼講解
$str="sdjfksdf2345"; $str=preg_replace_callback ( '/\d{4}/', function ($match){ return $match[0]."ff"; }, $str ); echo $str; exit;
代碼運(yùn)行結(jié)果為
sdjfksdf2345ff
該函數(shù)就是將正則匹配的結(jié)果作為匿名函數(shù)的參數(shù),返回的結(jié)果作為替換的結(jié)果。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
解析php dirname()與__FILE__常量的應(yīng)用
本篇文章是對(duì)php中的dirname()與__FILE__常量的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP進(jìn)階學(xué)習(xí)之垃圾回收機(jī)制詳解
這篇文章主要介紹了PHP進(jìn)階學(xué)習(xí)之垃圾回收機(jī)制,詳細(xì)分析了php垃圾回收機(jī)制的概念、原理及對(duì)性能的影響,需要的朋友可以參考下2019-06-06一個(gè)簡潔實(shí)用的PHP緩存類完整實(shí)例
這篇文章主要介紹了一個(gè)簡潔實(shí)用的PHP緩存類完整實(shí)例,緩存的應(yīng)用對(duì)于php大型項(xiàng)目的開發(fā)來說至關(guān)重要,需要的朋友可以參考下2014-07-07PHP在innodb引擎下快速代建全文搜索功能簡明教程【基于xunsearch】
這篇文章主要介紹了PHP在innodb引擎下快速代建全文搜索功能的方法,可基于開源搜索引擎xunsearch實(shí)現(xiàn),簡明扼要的講述了安裝與使用的步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-10-10php curl中g(shù)zip的壓縮性能測試實(shí)例分析
這篇文章主要介紹了php curl中g(shù)zip的壓縮性能測試,結(jié)合實(shí)例形式分析了php使用curl的gzip壓縮耗時(shí)與效率,需要的朋友可以參考下2016-11-11PHP大文件及斷點(diǎn)續(xù)傳下載實(shí)現(xiàn)代碼
這篇文章主要介紹了PHP大文件及斷點(diǎn)續(xù)傳下載實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08php5.5使用PHPMailer-5.2發(fā)送郵件的完整步驟
PHPMailer已經(jīng)更新了很多版本了,本教程只針對(duì)老版本。下面這篇文章主要給大家介紹了關(guān)于php5.5使用PHPMailer-5.2發(fā)送郵件的完整步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10