0

我有以下相当简单的代码,我需要确定某个值是否存在于数组中:

$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 括号内的代码。我做错了什么?

4

3 回答 3

3

$array这是:

$array = array('3, 4, 5');

这与以下内容不同:

$array = array(3, 4, 5);

所以,修复你创建这个数组的方式。不要从字符串中做。

于 2012-08-13T20:07:57.407 回答
3

更改第三行:

$array = array_map('trim', explode(',',$list));
于 2012-08-13T20:10:05.223 回答
2

您的数组只包含一个值,即字符串3, 4, 5

请参阅CodePad上的示例。

如果要将字符串转换为数组,可以使用:

$array = explode(', ', $list);

我在逗号后面添加了一个空格,但更安全的方法是只使用一个逗号,然后修剪所有值。

于 2012-08-13T20:07:28.803 回答