我有以下相当简单的代码,我需要确定某个值是否存在于数组中:
$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 括号内的代码。我做错了什么?
$array
这是:
$array = array('3, 4, 5');
这与以下内容不同:
$array = array(3, 4, 5);
所以,修复你创建这个数组的方式。不要从字符串中做。
更改第三行:
$array = array_map('trim', explode(',',$list));
您的数组只包含一个值,即字符串3, 4, 5
。
请参阅CodePad上的示例。
如果要将字符串转换为数组,可以使用:
$array = explode(', ', $list);
我在逗号后面添加了一个空格,但更安全的方法是只使用一个逗号,然后修剪所有值。