将PDO :: FETCH_ASSOC数组转换为索引数组

时间:2017-09-23 13:14:42

标签: php arrays pdo

我有以下代码

 $stmt = $pdo->query("SELECT Name,office FROM `table`");
 $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 print_r($rows);

打印以下内容

Array (
    [0] => Array (
        [Name] => Suki Burks
        [office] => London
    )
    [1] => Array (
        [Name] => Thor Walton
        [office] => New York
    )
)

我想要数字索引数组,就像这样

Array (
    [0] => Array (
        [0] => Suki Burks
        [1] => London
    )
    [1] => Array (
        [0] => Thor Walton
        [1] => New York
    )
)

我试图为此找到一个PDO常量因此我可以像这样使用它

$stmt->fetchALL(PDO::FETCH_INEDXED)

但我认为PDO中没有内置的方法来实现这一目标,但实现这一目标的好方法是什么?

谢谢

1 个答案:

答案 0 :(得分:5)

fetchAll()上的手册说明了第一个参数fetch_style,如下(强调我的)

  

按照PDOStatement::fetch() 中的说明控制返回的数组的内容。默认值为PDO::ATTR_DEFAULT_FETCH_MODE(默认为PDO::FETCH_BOTH

这意味着对于可用于不同fetch-style的常量的完整列表,您应该查看fetch()文档。这表明对于数字索引数组,您应该使用PDO::FETCH_NUM,这被描述为..

  

PDO::FETCH_NUM:返回一个数组索引的数组,该数组在结果集中返回,从第0列开始

最终结果如下所示,所有变化都是作为fetchAll()的参数提供的常量。

$stmt = $pdo->query("SELECT name,office FROM `table`"); // Singlequotes are for values, backticks for table/column-names
$rows = $stmt->fetchAll(PDO::FETCH_NUM);
print_r($rows);