PHP implode 爆炸逗号分隔值用于 if else 语句
Posted
技术标签:
【中文标题】PHP implode 爆炸逗号分隔值用于 if else 语句【英文标题】:PHP implode explode comma separated values for use in if else statement 【发布时间】:2016-02-11 07:10:28 【问题描述】:我正在做一个项目,我需要在数据库字段中输入逗号分隔值,然后提取数据以在 if 和 else 语句中使用。
例如:在数据库字段user_status
我有像admin,admin1,admin2,admin3........etc
这样的用户名。我想使用这些值,例如:
$user_status = $row['user_status']; // database values of all the usernames
$username = $_SESSION['username']; // username of the logged in user eg. admin
if($user_status == $username) // if session username matches with a username in the database field
statements;
else
statements;
我想从数据库中提取逗号分隔的数据库值,如果登录用户的用户名与数据库中的多个用户名之一匹配,则进行匹配。但我不太确定如何做到这一点。请专家帮助我。
【问题讨论】:
看看php函数explode
和in_array
这个问题与您在***.com/questions/33651972/… 的其他问题有显着不同吗?
是的......它完全不同......它都包含关于内爆爆炸的问题,但查询完全不同......
【参考方案1】:
使用explode
创建一个数组,并使用in_array
检查$username
是否存在于$user_status
数组中。
<?php
$username = $_SESSION['username'];
$user_status = explode(',', $row['user_status']);
if (in_array($username, $user_status))
//...
http://php.net/manual/en/function.explode.php
http://php.net/manual/en/function.in-array.php
【讨论】:
当我回显 $user_status = explode(',', $uhs['pads_status']);它返回 Notice: Array to string conversion in C:\xampp\htdocs\sites\ptc\member_ads.php on line 87 Array 不需要回显变量赋值,回显函数结果即可,使用echo explode..... @LaptopMedico 为什么要回显$user_status
?你想达到什么目标? $user_status
是一个数组,所以你必须使用print_r
或var_dump
来调试。也许您应该更新您的问题或更好地创建一个新问题。【参考方案2】:
作为替代解决方案,您可以搜索以逗号封装的字符串
if (strpos($user_status, ','.$username.',') !== false)
echo 'user found';
else
echo 'not found';
【讨论】:
以上是关于PHP implode 爆炸逗号分隔值用于 if else 语句的主要内容,如果未能解决你的问题,请参考以下文章