我正在为费率进行简单的邮政编码查询。下面的代码起作用,基本上如果来自$ zipcode的前3个字符是“962”(或任何确定的)它回显文本。有没有办法清理它?
如何通过数组查看$ zipcode以查看是否有任何条件?
if (substr($zipcode, 0, 3) === '962' || substr($zipcode, 0, 3) === '963' || substr($zipcode, 0, 3) === '964' || substr($zipcode, 0, 3) === '964' || substr($zipcode, 0, 3) === '965' || substr($zipcode, 0, 3) === '966') {
echo "We do not ship FPO";
}
答案 0 :(得分:4)
您可以简单地将不受支持的zip前缀列表放入和数组中,并检查针对此数组提供的前缀。
$zip_prefix_no_ship = array('962', '963', '964', '965', '966');
$zip_prefix = substr($zip_code, 0, 3);
if(in_array($zip_prefix, $zip_prefix_no_ship)) {
echo "We do not ship FPO"
}
答案 1 :(得分:2)
试试这个:
if (in_array(substr($zipcode, 0, 3), range(962, 966))) {
echo 'We do not ship FPO';
}
或者,清理了一下:
$needle = substr($zipcode, 0, 3);
$haystack = range(962, 966);
if (in_array($needle, $haystack)) {
echo 'We do not ship FPO';
}
in_array()检查数组中是否存在值。
range()在提供的两个值之间创建一个值数组。
如果要检查的数字数组并不总是一组连续的数字,那么您可以将range(962, 966)
更改为array(962, 963, ... )
答案 2 :(得分:1)
一种方式:
if(preg_match('/^96[2-6]/', $zipcode)) {
echo "We do not ship FPO";
}