我有以下相当简单的代码,我需要确定数组中是否存在某个值:
$testvalue = $_GET['testvalue']; // 4
$list = '3, 4, 5';
$array = array($list);
if (in_array($testvalue, $array)) { // Code if found } else { // Code if not found }
即使数字4在数组中很明显,代码也会返回else支持中的代码。我做错了什么?
答案 0 :(得分:3)
$array
这是:
$array = array('3, 4, 5');
与以下内容不同:
$array = array(3, 4, 5);
所以,修复你创建这个数组的方式..不要用字符串来做。
答案 1 :(得分:3)
更改第三行:
$array = array_map('trim', explode(',',$list));
答案 2 :(得分:2)
您的数组只包含一个值,即字符串3, 4, 5
。
请参阅CodePad上的示例。
如果要在数组中转换字符串,可以使用:
$array = explode(', ', $list);
我在逗号后面添加了一个空格,但更安全的方法是只使用逗号然后修剪所有值。