2015-12-07 33 views
1

我需要比較一個PHP變量與600 +靜態值。例如, $ validpostcode是一個變量。並有600多個有效的郵政編碼。是否有任何方式mangae大量(600+)如果條件

現在我需要檢查$ validpostcode是否存在於郵編列表中。 什麼是最好的比較方式?

+4

絕對'in_array()' – Rizier123

+1

您可以存儲在MySQL表和查詢 – Tristan

+0

的郵政編碼我猜沒有按郵政編碼經常改變,而且你經常在你的網頁上這樣做,如果是這樣,特里斯坦有正確的想法,將郵政編碼存儲在數據庫中,並檢查是否存在。 – adeneo

回答

0

如果你有郵政編碼爲數組,你可以使用in_array方法,像這樣:

$postcodes = array(// Postcodes here); 
$validpostcode = "POSTCODE"; 

if(in_array($validpostcode, $postcodes)){ 
    //Postcode is in the array 
} 

祝你好運!

另外是的,如果你每次都要編寫郵編,那麼將它們存儲在數據庫中,然後使用MYSQL查詢將它們全部抓到數組中,然後使用上面的方法。

+0

謝謝,克里斯,我有CSV格式的郵政編碼列表,我只是將它們轉換成數組,它完美地工作。 – Hem

0

我能想到的最快方法是使用isset()。當然你可以使用in_arrayarray_intersect但是它們比檢查密鑰是否存在更重。

在這裏你去:

$codes = array_fill_keys(array('code1', 'code2'), 0); 
$tocheck = 'code1'; 
if (isset($codes[$tocheck])) { 
     echo 'valid'; 
} else { 
     echo 'nope'; 
} 

參考執行時間的測試對比:Faster array lookup

相關問題