[英]check if key exists in array that matches string
我收到來自第三方的提要,其中包括每個對象的位置字符串。
我遍歷每個對象,檢查位置,並根據位置與我所擁有的位置數據庫的匹配為它存儲緯度/經度值。
有時,位置字符串的格式不正確/變化太多,位置DB根本不匹配。
我在“特殊位置”的配置文件中設置了一個數組,如果位置匹配失敗,我希望能夠與該數組進行匹配。
例如,在我的數組中,我將有:
Aberdeen => (
latitude => LATVAL,
longitude => LONGVAL
),
Greater London => (
latitude => LATVAL,
longitude => LONGVAL
)
而且我可能會從Feed中獲取一個對象,該對象的位置字符串為
'Aberdeen (EU Travel)'
另一個可能是:
'Aberdeen Airport, Grampia'
在這些情況下,我想匹配阿伯丁,並能夠獲得相關的經緯度。
如何檢查數組,以查看位置字符串中是否有鍵? 或位置字符串包含數組中的鍵
如果我們這樣處理,該怎么辦?
// Function to compare and find and return;
function checkIfContains($find,$locations)
{
$newArray = array();
foreach($locations as $loc => $value)
{
if (strpos($loc,$find) !== false) {
$newArray[] = $value;
}
}
return $newArray;
}
// Sample data
$locations = array(
'Aberdeen' => array(
'latitude' => '123.123123213',
'longitude' => '5.34234324'
),
'Aberdeen (EU Travel)' => array(
'latitude' => '112.4344443',
'longitude' => '1.23444322'
),
'Aberdeen Airport, Grampia' => array(
'latitude' => '6.434443',
'longitude' => '23.34445'
),
'Greater London' => array(
'latitude' => '13.545453',
'longitude' => '11.233467'
)
);
// Filtered array with only the Aberdeen Elements
$filteredArray = checkIfContains('Aberdeen' , $locations);
// Debugging Test
foreach($filteredArray as $loc)
{
echo $loc['latitude'] .',', $loc['longitude'].'<br>';
}
這使我們可以通過部分字符串匹配來查找結果。
讓我知道這樣的事情是否有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.