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函数explodein_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_rvar_dump 来调试。也许您应该更新您的问题或更好地创建一个新问题。【参考方案2】:

作为替代解决方案,您可以搜索以逗号封装的字符串

if (strpos($user_status, ','.$username.',') !== false) 
   echo 'user found';
else 
    echo 'not found';

【讨论】:

以上是关于PHP implode 爆炸逗号分隔值用于 if else 语句的主要内容,如果未能解决你的问题,请参考以下文章

数组转字符串(属性加单引号,逗号分隔)

用于逗号分隔值的PHP'foreach'[重复]

PHP数组转字符串(属性加单(双)引号,逗号分隔)

PHP内爆爆炸第一个和最后一个数组值

在c#中替代php的explode/implode-functions

Laravel 查询:Php 内爆数组字符串值 [重复]