【问题标题】:Use variable as php array使用变量作为 php 数组
【发布时间】:2013-06-21 11:41:59
【问题描述】:

我想知道变量是否可以在数组中使用。见下文 ($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'];那里

【问题讨论】:

  • 什么是$row['usersBought']
  • 来自 MySQL 结果...
  • 你试过了吗,$userArray = $row['usersBought']; ??
  • $usersBought = $row['usersBought'];它已经存在了
  • 好吧,$row['usersBought'] 是一个数组,所以 $usersBought 是一个数组。然后将此数组添加到另一个数组中,$userArray = array($usersBought);只需替换 $userArray = $usersBought 并尝试一次

标签: php mysql arrays variables


【解决方案1】:

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

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

连接到数据库后,您应该执行以下操作:

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

【讨论】:

  • 你这里好像少了代码,%s是什么,mysqli_query()需要参数等等
【解决方案2】:

如果您像这样存储数据: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);

【讨论】:

    【解决方案3】:

    假设 $row['usersBought'] 本身是一个数组(我对此表示怀疑),那么您要查找的函数称为 array_merge

    您的代码如下所示:

    $userArray = array_merge($usersBought);
    

    【讨论】:

      【解决方案4】:

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

      然而,要回答您的问题,您需要使用explode() 函数。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-11
        • 2011-12-30
        • 2021-06-24
        • 1970-01-01
        • 2018-06-23
        • 1970-01-01
        • 2018-02-13
        • 1970-01-01
        相关资源
        最近更新 更多