如何从PDO结果集生成多维数组?

时间:2017-07-19 23:50:08

标签: php arrays multidimensional-array pdo resultset

我正在尝试使用PDO查询的结果集创建一个数组。

我不确定如何生成我想要的数组结构。

require_once("../resource/Database.php");

$query ="SELECT username FROM users";
$select = $db->prepare($query);
$select->execute(array());  
foreach($select as $rs) :          
    $testing = "array('city'=>".$rs['citynames']"),"

$cities = array(
    echo $testing;
);  

我想要这个结果:

$names= array(
    array('name'=>'Los Angeles'),
    array('name'=>'Chicago'),
    array('name'=>'Houston'),
    array('name'=>'Phoenix'),
    array('name'=>'Philadelphia'),
    array('name'=>'San Antonio'),
    array('name'=>'Dallas',),
    array('name'=>'San Diego',),
    array('name'=>'San Jose', ),
    array('name'=>'Detroit', ),
    array('name'=>'San Francisco',),
    array('name'=>'Jacksonville', ),
    array('name'=>'Indianapolis', ),
    array('name'=>'Austin', ),
    array('name'=>'Columbus', ),
    array('name'=>'Fort Worth',),
    array('name'=>'Charlotte', ),
    array('name'=>'Memphis', ),
    array('name'=>'Baltimore', ),
);

2 个答案:

答案 0 :(得分:2)

大概是你想要这样做?

struct A { auto f(auto...); };

template<class T> requires X<T::f>()
void f(T, auto...);

auto z = f( A{}, 0, "", 'a' );

这是在in the manual找到的阵列推送。如果这不是你的意思,你必须澄清。

答案 1 :(得分:2)

您应该指定sql查询输出格式:

$query ="SELECT username FROM users";
$select = $db->prepare($query);
$select->execute(array());  
foreach($select->fetchAll(PDO::FETCH_ASSOC) as $rs) {
   $testing[] = array('city' => $rs['citynames']);
}

var_dump($testing);