Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP if()匹配数组中的项_Php_Arrays_Find - Fatal编程技术网

使用PHP if()匹配数组中的项

使用PHP if()匹配数组中的项,php,arrays,find,Php,Arrays,Find,我正在处理一个管理面板,如果PDO查询返回admin表中的所有管理员,并且userid与admin id结果中的1匹配,那么代码将显示不同的结果。只有无限数量的管理员,我不想编辑每个管理员的代码 是否可以这样做(伪代码): if($userid isfoundin$result['admin\u user\u id']{ --管理代码在这里 } 我还没有编写admin表,因为我想先了解更多信息,但是如果我在user表中循环查找id$query->fetchAll(),我会得到以下结果: a

我正在处理一个管理面板,如果PDO查询返回admin表中的所有管理员,并且userid与admin id结果中的1匹配,那么代码将显示不同的结果。只有无限数量的管理员,我不想编辑每个管理员的代码

是否可以这样做(伪代码):

if($userid isfoundin$result['admin\u user\u id']{
--管理代码在这里
}

我还没有编写admin表,因为我想先了解更多信息,但是如果我在user表中循环查找id
$query->fetchAll()
,我会得到以下结果:

   array(30) { [0]=> array(2) { ["id"]=> string(1) "7" [0]=> string(1) "7" } [1]=> array(2) { ["id"]=> string(1) "6" [0]=> string(1) "6" } [2]=> array(2) { ["id"]=> string(1) "8" [0]=> string(1) "8" } [3]=> array(2) { ["id"]=> string(2) "31" [0]=> string(2) "31" } [4]=> array(2) { ["id"]=> string(2) "26" [0]=> string(2) "26" } [5]=> array(2) { ["id"]=> string(1) "4" [0]=> string(1) "4" } [6]=> array(2) { ["id"]=> string(2) "35" [0]=> string(2) "35" } [7]=> array(2) { ["id"]=> string(2) "21" [0]=> string(2) "21" } [8]=> array(2) { ["id"]=> string(2) "38" [0]=> string(2) "38" } [9]=> array(2) { ["id"]=> string(2) "24" [0]=> string(2) "24" } [10]=> array(2) { ["id"]=> string(2) "34" [0]=> string(2) "34" } [11]=> array(2) { ["id"]=> string(2) "20" [0]=> string(2) "20" } [12]=> array(2) { ["id"]=> string(2) "19" [0]=> string(2) "19" } [13]=> array(2) { ["id"]=> string(2) "23" [0]=> string(2) "23" } [14]=> array(2) { ["id"]=> string(2) "33" [0]=> string(2) "33" } [15]=> array(2) { ["id"]=> string(2) "28" [0]=> string(2) "28" } [16]=> array(2) { ["id"]=> string(1) "3" [0]=> string(1) "3" } [17]=> array(2) { ["id"]=> string(2) "15" [0]=> string(2) "15" } [18]=> array(2) { ["id"]=> string(1) "9" [0]=> string(1) "9" } [19]=> array(2) { ["id"]=> string(2) "25" [0]=> string(2) "25" } [20]=> array(2) { ["id"]=> string(1) "1" [0]=> string(1) "1" } [21]=> array(2) { ["id"]=> string(2) "32" [0]=> string(2) "32" } [22]=> array(2) { ["id"]=> string(1) "5" [0]=> string(1) "5" } [23]=> array(2) { ["id"]=> string(2) "18" [0]=> string(2) "18" } [24]=> array(2) { ["id"]=> string(2) "29" [0]=> string(2) "29" } [25]=> array(2) { ["id"]=> string(2) "27" [0]=> string(2) "27" } [26]=> array(2) { ["id"]=> string(2) "30" [0]=> string(2) "30" } [27]=> array(2) { ["id"]=> string(2) "22" [0]=> string(2) "22" } [28]=> array(2) { ["id"]=> string(2) "10" [0]=> string(2) "10" } [29]=> array(2) { ["id"]=> string(2) "36" [0]=> string(2) "36" } }
这就是我现在正在尝试使用的

require_once $_SERVER['DOCUMENT_ROOT']."/resources/settings.php";
$query = $pdo->prepare("SELECT id FROM users");
$query->execute();
var_dump($query->fetchAll());
if (in_array($user['id'], $query->fetchAll())){
    echo $user['id'];
}
是的,你可以用这个。 我假设您有一组管理员用户。例如:

$adminUsers = array("admin", "administrator");
# Or by your code
$adminUsers = $result['admin_user_id'];
现在代码部分如下所示:

if (in_array($userid, $adminUsers))
    // Admin code here

我认为您正在查找给定项是否在数组中。

如果您需要知道的只是数组中存在用户ID,则应在数组()中使用


但是,如果您确实需要对该项的引用,请查看
array\u search()

,而不是遍历admins表中的所有用户,然后使用另一个循环来查找特定用户是否存在,为什么不在查询本身中执行此检查呢

例如:

$stmt = $mysqli->prepare("SELECT name,email FROM admins WHERE id=?");
$stmt->bind_param("d", $user_id);
$stmt->execute();
$stmt->bind_result($name, $email);

    if ($stmt->fetch()) {
        //The user with user_id exists in the admins table , show him the admin panel.
        //You can use $name and $email.
    }

$stmt->close();

我听说过这种情况,但你能给我看一些代码吗?我用谷歌搜索了一下,但与我的情况完全不同。他链接到的手册页面上有一些例子。@MuqMan你太快了。发布了代码。也添加了一些与你的代码相关的东西!
:)
数组中的
函数将完成这项工作,但是,只有当
$result['admin\u user\u id']
是您的
管理员id的数组时,才能等待,但在pdo中,您将foreach作为$var执行,那么这仍然有效吗?
$result['admin\u user\u id']
是否包含数组?@MuqMan,我们需要有关您情况的更多信息。您的表的结构,
results['admin\u user\u id']
变量的内容是什么?请粘贴更多的代码。等一下,伙计们,让我来获取数据。等一下,如果($userid in_array($admin['user_id'])?+1这应该是IMO接受的答案。其他人(包括我)都太关注问题的“有可能做到这一点吗…”部分,但这个答案更好地满足了总体需求。