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