1

我想知道变量是否可以在数组中使用。见下文($userArray = array($usersBought);

    $user = "Darren";
    $usersBought = $row['usersBought'];
    $userArray = array($usersBought);
    if (in_array($user, $userArray)) {
      $button = "yes";
    }

如果这可行,那么数据库中的文本应该是什么?我试过这个...

"Darren","Adam","Coral"
Darren,Adam,Coral
Darren Adam Coral

这个数组在一个while循环中,通过循环在一个页面上显示多个无序列表。这就是为什么我有 $usersBought = $row['usersBought']; 那里

4

4 回答 4

3

如果您像这样存储数据:Darren,Adam,Coral 正确的解决方案是:

$user = "Darren";
$usersBought = explode(",",$row['usersBought']); //Just choose the right delimiter.


if (in_array($user, $userArray)) {
  //Ok proceed.
}

此外,您可以使用preg_grep允许您以不区分大小写的方式进行检查的功能。

$in_array = preg_grep("/{$user}/i" , $usersBought);
于 2013-06-24T20:27:39.947 回答
3

为了使您的数据库正确规范化,您应该以这样一种方式构建表,即您不在数据库中存储数组,而是每个用户都是表中的一行。

但是,要回答您的问题,您需要使用该explode()功能。

//$row['usersBought'] = "Darren,Adam,Coral"; <- Example 
$user = "Darren";
$usersBought = $row['usersBought'];
$userArray = explode(",", $usersBought);
if (in_array($user, $userArray)) {
  $button = "yes";
}

在上面的示例中,它假定用户用逗号分隔,但您可以将第一个参数更改为您想要的任何参数。

于 2013-06-24T20:27:41.373 回答
0

假设 $row['usersBought'] 本身是一个数组(我怀疑),那么您正在寻找的函数称为array_merge

你的代码看起来像:

$userArray = array_merge($usersBought);
于 2013-06-24T20:28:20.983 回答
0

for example: Database test, table Users

ID|Name|
1|Emilio|
2|Darren|

After the connect to DB you should do something like this:

$user = 'Darren';
$query = "SELECT Name FROM Users WHERE Name ='$user'";
$result = mysqli_query($query);
$count = mysqli_num_rows($result);
if($count >= 1){
    $button = "yes";
}
于 2013-06-24T20:34:29.963 回答