数组无法接受数据

时间:2015-12-18 13:40:21

标签: php arrays

  

概念:用户输入他/她的邮政编码( 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并且无法与用户输入匹配

如果您无法理解我在说什么,我很抱歉。我的英语不太好。

1 个答案:

答案 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';