Kerberos
Kerberos

Reputation: 1266

Using array_map with fetchAll(PDO::FETCH_ASSOC)

I am creating json from my db as below;

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

I am trying to working on value of db returned array as below but returns error.

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

Warning: strtolower() expects parameter 1 to be string, array given in

Upvotes: 0

Views: 867

Answers (1)

Alexander R.
Alexander R.

Reputation: 1756

Because $PdoResultToArray is array of rows. Each row is array itself.

You must loop over each row manually:

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

Build new array with rows:

$lowerRows = []

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

Upvotes: 1

Related Questions