我有一个名为$ myArray的数组:
Array (
[0] => bb
[1] => kk
[2] => ll )
我在上面查询:
$sql = ("SELECT username FROM Users WHERE username IN ('" . implode("','",$myArray) . "') AND status > 0 ");
$result = $conn->query($sql)->fetchAll(PDO::FETCH_ASSOC);
print_r ($result);
我得到的是:
Array (
[0] => Array ( [username] => bb )
[1] => Array ( [username] => kk ) )
但我想得到的是:
Array (
[0] => bb
[1] => kk ) )
我能做些什么来实现这个目标?
提前致谢!
答案 0 :(得分:2)
<?php
$query = $conn->prepare("SELECT username FROM Users WHERE username IN ('" . implode("','",$myArray) . "') AND status > 0 ");
$query->execute();
$myArray = array();
if($query->rowCount() > 0){
$i = 0;
while($data = $query->fetch(PDO::FETCH_ASSOC) ){
//echo "<pre>";print_r($data);echo"</pre>";
$myArray[$i] = $data;
$i++;
}
}
print_r($myArray);
?>
答案 1 :(得分:1)
打印的数组采用的格式应该是。
这是因为您可以在SQL查询中选择多个列,以便每行都应该是一个数组。
你可以做的只是再次遍历数组并将数组重新格式化为你想要的形状。
foreach ($result as &$value){
$value = $value['username'];
}
答案 2 :(得分:0)
如果你想要1个班轮:
$result = array_column($result,"username");