Php 尝试将字段数据放入if inarray()检查
只是想知道是否有人能帮我解决这个问题。。。 我希望能够检查某个ID(例如用户已登录)这些用户的ID是否将从表中提取,然后馈送到数组中,然后检查它是否在其中 但是,当我提取数据时,if inarray()不再像我直接在代码中键入数据而不是提取数据那样工作 我想拉通过批准的ID,使他们可以访问一个特定的链接本质上 任何帮助都将不胜感激!谢谢Php 尝试将字段数据放入if inarray()检查,php,sql-server,arrays,Php,Sql Server,Arrays,只是想知道是否有人能帮我解决这个问题。。。 我希望能够检查某个ID(例如用户已登录)这些用户的ID是否将从表中提取,然后馈送到数组中,然后检查它是否在其中 但是,当我提取数据时,if inarray()不再像我直接在代码中键入数据而不是提取数据那样工作 我想拉通过批准的ID,使他们可以访问一个特定的链接本质上 任何帮助都将不胜感激!谢谢 <?php mssql_select_db("$ins", $con); $result = mssql_query("SELECT ID FROM E
<?php
mssql_select_db("$ins", $con);
$result = mssql_query("SELECT ID FROM Event WHERE EventPublic LIKE 'Yes' AND EventDate >= GETDATE() -1 ORDER BY EventDate ASC ");
while($row = mssql_fetch_array($result))
{
$test = "". $row['ID'] .",";
}
$tests = explode(',', $test);
if (in_array("2, 48", $tests)) {
echo "WOO";
}
else
{
echo "BOO";
}
mssql_close($con);
?>
数组中的
应为实际数组
in_array(array('2', '48'), $tests)
此外,最好是
$tests = array();
在while循环之前,将循环中的代码更改为read
$tests[] = $row['ID'];
然后,您可以取消“$tests=explode(…”行)。您的in_数组测试存在问题,因为您正在比较数组和下一行中的字符串:
if (in_array("2, 48", $tests))
上面的一行检查数组中是否存在字符串“2,48”。但是数组将有2作为一个元素,48作为一个单独的元素。要解决此问题,您可以使用以下方法分别搜索每个元素:
if(in_array('2',$tests) || in_array('48',$tests))
哎哟,我意识到这是错误的。@Brett下面的答案很有效。如果你有一个大数组,你可以在数组中添加“$tests[$row['id']]=true”,然后你可以使用“isset($tests[2])| | isset($tests[4])。这在大数组上会快得多(in_数组相当慢)