Php Mysql从数组中选择值

Php Mysql从数组中选择值,php,mysql,arrays,select,Php,Mysql,Arrays,Select,我已创建以下数组: $selectedvillas[] = array ( 'villaname' => $row1['name'] 和 print_r($selectedvillas); 它打印: Array ( [0] => Array ( [villaname] => Villa 1 ) [1] => Array ( [villaname] => Villa 2 ) [2] => Array ( [villaname] => Villa

我已创建以下数组:

$selectedvillas[] = array (
    'villaname' => $row1['name']

print_r($selectedvillas);
它打印:

Array ( [0] => Array ( [villaname] => Villa 1 ) [1] => Array ( [villaname] => Villa 2 ) [2] => Array ( [villaname] => Villa 3 ) [3] => Array ( [villaname] => Villa 4 ) [4] => Array ( [villaname] => Villa 5 ) [5] => Array ( [villaname] => Villa 6 ) [6] => Array ( [villaname] => Villa 7 ) [7] => Array ( [villaname] => Villa 8 ) [8] => Array ( [villaname] => Villa 9 ) [9] => Array ( [villaname] => Villa 10 ) [10] => Array ( [villaname] => Villa 11 ) [11] => Array ( [villaname] => Villa 12 ) )
我想从mysql中选择上面所有的villaname,其中villa是上面带有villaname的数组

$query_reviews= "SELECT * FROM reviews where villa IN $selectedvillas order by dateofreview DESC";

必须将数组格式化为字符串

首先,似乎可以通过更简单地构建阵列来简化工作,如下所示:

$selectedvillas[]=$row1['name']

然后,您可以使用
内爆()
轻松地将数组格式化为逗号分隔的字符串

我经常使用这个:

$query_reviews= "SELECT * FROM reviews 
WHERE villa IN ('" .implode("', '", $selectedvillas) . "') order by dateofreview DESC";

注意:这些单引号很容易漏掉,但它们很重要。

您必须使用PHP explode函数在:$query_reviews=“SELECT*FROM reviews where villa IN($list)order by dateofreview DESC”之后构建字符串“$list=explode(',',$selectedvillas);”;