概念:用户输入他/她的邮政编码( EXA1 2PL 或 EX1 2AP )我们修剪最后3个字符,并留下开始邮政编码( EXA1 或 EX1 );现在我们检查数组中的数据,如果匹配则执行其他操作。
处理用户数据时,我总是得到数组输出,其中没有任何内容。以下是我正在使用的代码。
$op_postcodes = '"PH3,PH4,PH5"';
//Data has been cut for stack purposes however stays in same format
//with one " at the start of the string and one at the end
$op_postcodes = str_replace(',', '","', $op_postcodes);
$op_postcodes = array($op_postcodes);
这会输出:Array
并且无法与用户输入匹配
如果您无法理解我在说什么,我很抱歉。我的英语不太好。
答案 0 :(得分:1)
如上所述,如果使用explode
,您将得到一个包含多个元素的数组,这是您当前的方法所做的。但是,我不确定您为什么要像这样将数组值封装在引号中?
$op_postcodes = '"PH3,PH4,PH5"';
$op_postcodes = str_replace(',', '","', $op_postcodes);
$op_postcodes = explode(',', $op_postcodes);
echo in_array( '"PH4"', $op_postcodes ) ? 'Found it' : 'Ooops, could not find it';
除非特别需要将数组值封装在引号内,否则对上述内容的一个小改动可能是:
$search_user_value='PH4';
$op_postcodes = '"PH3,PH4,PH5"';
$op_postcodes = str_replace('"', '', $op_postcodes );
$op_postcodes = explode(',', $op_postcodes);
echo in_array( $search_user_value, $op_postcodes ) ? 'Found it' : 'Ooops, could not find it';