当我从selected.php?aa=2,3,
$mainclass = $_GET['aa'];
$classarray = explode(",", $mainclass);
$classarray = array_walk($classarray, 'intval');
$classa = implode(',', $classarray);
$makefeed = mysql_query("SELECT * FROM studentnew WHERE fieldname IN (".$classa.")"); while ($cc = mysql_fetch_array($makefeed)) { }
答案 0 :(得分:1)
使用array_walk()
时,键/索引作为第二个参数传递给回调函数(intval()
)。
intval()
的第二个参数是基数。您不希望将数组索引作为基数传入。这将返回不正确的结果(我假设您希望它们全部为十进制)。
相反,请使用array_map()
。
此外,array_walk()
通过引用工作并返回一个布尔值。因此,您要将此布尔值分配给$classarray
变量。
答案 1 :(得分:1)
变化
$classarray = array_walk($classarray, 'intval');
到
array_walk($classarray, 'intval');
array_walk返回布尔值,而不是数组。 http://ru2.php.net/manual/en/function.array-walk.php
答案 2 :(得分:1)
您需要array_map。
更改
$classarray = array_walk($classarray, 'intval');
到
$classarray = array_map('intval' ,$classarray);