PHP / MySql更改数组格式

时间:2017-01-30 11:55:25

标签: php mysql arrays

我有一个名为$ 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 ) )

我能做些什么来实现这个目标?

提前致谢!

3 个答案:

答案 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");