我知道这可能是“树林换树”的问题之一,但我已经坐在这里一整天了,我只是不知道自己哪里出了问题。
设想情况:
基本上,我有一个查询,返回以下assoc地址结果数组,如下所示:
Array ( [0] => Array ( [Address_ID] => 12 [Address_String] => 23 Abledone road Hobs moat Solihull West Midlands B92 4JJ ) [1] => Array ( [Address_ID] => 13 [Address_String] => 22 Holdean Road Deepcut Surrey KT164NJ ) [2] => Array ( [Address_ID] => 14 [Address_String] => 32 Palbrough Road Nottingham N32 4NJ ) [3] => Array ( [Address_ID] => 15 [Address_String] => Flat 2B Gateway House Rutland Street Bearwood Westmidlands B66 9RT ) [4] => Array ( [Address_ID] => 16 [Address_String] => 258 Lincoln Street Bullworth Street Dundee DD35 9RJ ) [5] => Array ( [Address_ID] => 17 [Address_String] => 4 Scott Arms Avenue Beckton Hartfordshire H32 7JJ ) [6] => Array ( [Address_ID] => 18 [Address_String] => 14 Fairfield house Millbank road Bearwood Birmingham Westmidlands B137JJ ) [7] => Array ( [Address_ID] => 19 [Address_String] => 9 Scott road Olton Solihull Westmidlands B91 7TY ) [8] => Array ( [Address_ID] => 20 [Address_String] => Normandy House Bunnian Place Basingstoke RG21 7EJ ) [9] => Array ( [Address_ID] => 27 [Address_String] => 3 New Square Bedfont Lakes Feltham Middlesex TW14 8HB ) [10] => Array ( [Address_ID] => 28 [Address_String] => No. 1 The Square Temple Quay Bristol BS1 6DG ) [11] => Array ( [Address_ID] => 29 [Address_String] => The Visual Space Capital Park Fulbourn Cambridge CB21 5XH ) [12] => Array ( [Address_ID] => 40 [Address_String] => 21 St. Andrew Square Edinburgh Scotland CB21 5XH ) ) 我所要做的就是将这些结果与一个搜索字符串相匹配,以查看地址是否已经在我的db中。
我的代码如下:
public function addressExistsByString ($searchAddrString, $asJSON = FALSE) {
if (!isset($searchAddrString)) {
throw new Exception('The searchAddrString variable of function ' . __FUNCTION__ . ' of class ' . __CLASS__ . 'was empty or set to NULL.');
} elseif (!is_string($searchAddrString)) {
throw new Exception('The type of value for the argument addressID of function ' . __FUNCTION__ . ' of class ' . __CLASS__ . ' was ' . gettype($searchAddrString) . ' a string was expected');
}if (!is_bool($asJSON)) {
$asJSON = FALSE;
}
print_r ($addressArray = $this->getAllLocations(FALSE));
if ($addressArray === -1) {
return -2;
} else {
$search = str_replace(',','', strtolower(trim($searchAddrString)));
foreach ($addressArray as $record) {
$recID = $record ['Address_ID'];
$currentAddress =str_replace(',','', strtolower(trim($record['Address_String'])));
echo 'Search address: '. $search. ' Current address: '. $currentAddress .' type of current address: '.gettype($searchAddrString).'<br/>';
if ($currentAddress === $search) {
if ($asJSON) {
echo json_encode($recID);
}
return intval($recID);
}
}
if ($asJSON) {
echo json_encode(-1);
}
return -1;
}
}当我运行这段代码时,我得到了以下输出(抱歉,它有点长,但重要的部分是突出显示的):
巴辛斯托克rg21 7 7ej当前地址: 23可建道路霍布斯护城河、索里赫尔西米德兰兹b92 4jj类型的当前地址:字符串搜索地址:诺曼底豪宅邦宁斯托克广场rg21 7 7ej当前地址: 22荷兰路深切萨里kt164nj类型当前地址: string搜索地址: normandy house bunnian rg21 7 7ej当前地址: 32 palbrough nottingham n32 4 4nj类型当前地址:字符串搜索地址: normandy house basingstoke rg21 7ej当前地址: normandy basingstoke rg21 7ej当前地址: rutland街bearwood westmidlands b66 9类型当前地址: string地址: normandy house midlands rg21 rg21 7j当前地址:林肯街布尔沃思街258号dd35 9 9rj当前地址:字符串搜索地址:诺曼底豪宅邦尼广场basingstoke rg21 7 7ej当前地址:斯科特军士大道4号贝克顿哈特福德郡h32 7 7jj类型当前地址: string搜索地址: string搜索地址:诺曼底豪宅邦尼广场basingstoke rg21 7 7ej当前地址:费尔菲尔德豪斯米尔班克路14号比尔伍德伯明翰韦斯特兰兹b137jj类型:字符串搜索地址:诺曼底豪宅平铺贝辛斯托克rg21 7 7ej当前地址:斯科特路奥尔顿斯利赫尔西部中部地区b91 7ty类型的当前地址: string地址:normandy house bunnian rg21 basingstoke rg21 rg21 7ej当前地址:normandy house basingstoke rg21 rg21 7ejrg21 7 7ej类型当前地址: string搜索地址: normandy house bunnian rg21 7 7ej当前地址:3个新的贝德丰特湖菲尔塔姆米德尔塞克斯tw14 8hb类型的当前地址: string搜索地址: string搜索地址: normandy house bunnian rg21 7 7ej当前地址:1号方形寺庙码头bs1 6dg类型的当前地址: string搜索地址: normandy house bunnian rg21 7ej当前地址:视觉空间大本营公园quay剑桥cb21 5xh类型的当前地址:string搜索地址: normandy house bunnian rg21 7ej当前地址: st 21。安德鲁广场爱丁堡苏格兰cb21 5xh类型当前地址: string -1
突出显示的字符串完全相同,我测试了它们,方法是将它们都取下来,并将它们作为普通字符串放在单独的if语句中,并始终返回true。我尝试过==、===转换、string值和所有我能想到的东西,但出于某种原因-1总是返回。我知道这可能是我错过的很简单的东西,但我就是看不见,有人能帮上忙吗?
提前谢谢。
发布于 2013-02-03 15:58:28
在您比较两个变量之前,请先对它们进行转储()。在此之前回显一个<pre>标记,以查看浏览器中的所有空白,而无需切换到HTML源代码。
你很可能会错过一些空格字符。
https://stackoverflow.com/questions/14674175
复制相似问题