我正在尝试检查我的字段之一是否包含(而不是等于)从$ user变量中获取的项目。我的字段(field_targetuser)包含一串数字:45、409、47、100。
我正在尝试查看field_targetuser是否包含捕获的uid(47)。为了完成此任务,我应该如何编写以下内容?为我的新意表示歉意。
global $user;
if($user->uid == $data->field_targetuser)
{
return false;
} else {
return true;
}
答案 0 :(得分:3)
使用带有,
参数的explode(),它将构成ID数组。
$arrTargetUserIds = explode(',', $data->field_targetuser);
然后在数组中查找。
if(in_array($user->uid, $arrTargetUserIds)){
}
答案 1 :(得分:1)
通常,PHP explode()
将字符串拆分为数组,而in_array()
检查 uid 是否在展开的数组中。同时添加array_map()
来修剪数字周围的空白。让我们这样做吧-
<?php
$user = new stdClass();
$data = new stdClass();
$user->uid = 47;
$data->field_targetuser = array_map('trim', explode(',', '45, 409, 47, 100'));
if(in_array($user->uid,$data->field_targetuser))
{
print "Exists";
return true;
} else {
print "Not Exists";
return false;
}
?>