2015-04-06 78 views
0

我從我的數據庫創建json如下;使用array_map與fetchAll(PDO :: FETCH_ASSOC)

$PdoObject -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$PdoStatement=$PdoObject->prepare($SqlQuery); 
$PdoStatement->execute(); 
$PdoResultToArray=$PdoStatement->fetchAll(PDO::FETCH_ASSOC); 

我想在db返回數組的值如下所示,但返回錯誤。

$PdoResultToArrayNew=array_map("strtolower", $PdoResultToArray); 

警告:用strtolower()預計參數1是字符串,

+0

你的函數'array_map(首字母大寫,$ PdoResultToArray); ''必須像這樣'array_map(「titleCase」,$ PdoResultToArray); ' – 2015-04-06 11:38:24

+0

你可以'print_r($ PdoResultToArray)'? – 2015-04-06 12:58:37

回答

1
給出

由於$PdoResultToArray是行的陣列排列。每一行都是數組本身。

您必須遍歷手動每一行:

foreach($PdoResultToArray as $row) { 
    $json_row = array_map("strtolower", $row); 
    /// do with it what you want 
} 

建立與行新的數組:

$lowerRows = [] 

foreach($PdoResultToArray as $row) { 
    $lowerRows[] = array_map("strtolower", $row); 
} 
+0

謝謝,但我怎樣才能像FORTRACKAll(PDO :: FETCH_ASSOC)結構再次合併數組之後? – Kerberos 2015-04-06 13:05:28

+0

已更新的答案。只需創建新的行數組。 – 2015-04-06 13:10:16

+0

非常感謝你的作品像一個魅力:) – Kerberos 2015-04-06 13:13:08