2015-04-06 118 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