使用变量作为php数组

时间:2013-06-24 20:23:02

标签: php mysql arrays variables

我想知道变量是否可以在数组中使用。见下文( $ 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 个答案:

答案 0 :(得分: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);

答案 1 :(得分:3)

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

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

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

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

答案 2 :(得分:0)

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

,您的代码如下:

$userArray = array_merge($usersBought);

答案 3 :(得分:0)

例如:数据库测试,表用户

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

连接到DB后,您应该执行以下操作:

$user = 'Darren';
$query = "SELECT Name FROM Users WHERE Name ='$user'";
$result = mysqli_query($query);
$count = mysqli_num_rows($result);
if($count >= 1){
    $button = "yes";
}