2017-09-23 89 views
2

我有下面的代碼轉換PDO :: FETCH_ASSOC數組索引數組

$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中沒有內置的方法來實現這一目標,但實現這一目標的好方法是什麼?

由於

+4

中可以清楚地陳述的[**手冊**](http://php.net/manual/en/pdostatement.fetchall.php) ,您可以使用'PDO :: FETCH_BOTH'來獲取關聯和數字,或者只使用'PDO :: FETCH_NUM'來獲取數字。完整列表可在['PDOStatement :: fetch()'](http://php.net/manual/en/pdostatement.fetch.php)中獲得,如鏈接的第一個文檔中所述。 – Qirel

+0

爲什麼不作爲答案發布@Qirel? – Marwelln

+0

爲什麼不呢,@Marwelln :-) – Qirel

回答

5

關於第一個參數,fetch_stylefetchAll()狀態手動,如下(重點煤礦)

控制返回的數組作爲記錄在PDOStatement::fetch()的內容。默認爲PDO::ATTR_DEFAULT_FETCH_MODE值(默認爲PDO::FETCH_BOTH

這意味着對於可用於不同取的樣式常量的完整列表,你應該看看的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); 
+0

我還是找不到FETCH_NUM,你在哪找到它的? http://php.net/manual/en/pdostatement.fetchall.php – beginner

+0

[請參閱此評論](https://stackoverflow.com/questions/46379978/convert-pdofetch-assoc-array-into-indexed-數組#評論79718470_46379978),我留下了這個問題。 –

+0

我在答案中也寫了它,但你會在'fetch()'文檔中找到常量列表,並在答案中鏈接。它們對於兩種提取方法都是一樣的。 – Qirel