将数组添加到PDO :: FETCH_ASSOC的json编码数组中

时间:2017-03-15 14:58:31

标签: php arrays json fetch

我将所有产品类别从db和encoding返回到json,这样工作正常,只是我想修改返回的image_url的值并在后面添加http://因为它不在db值。

ggplot2

返回的数据是:

$catlist = $pdo->prepare("SELECT * FROM `categories`");
$catlist->execute();
while($Categories = $catlist->fetch(PDO::FETCH_ASSOC)){
$newArr[] = $Categories;
}
echo json_encode(array_values($newArr));

所以我的目标是将http://x.com/连接到图像url对象数据。

3 个答案:

答案 0 :(得分:0)

您可以先修改数组,然后将其添加到数组中:

$catlist = $pdo->prepare("SELECT * FROM `categories`");
$catlist->execute();
while($Categories = $catlist->fetch(PDO::FETCH_ASSOC)){
    $Categories['image_url'] = "http://x.com/".$Categories['image_url']; //<- Add this line
    $newArr[] = $Categories;
} 
echo json_encode(array_values($newArr));

答案 1 :(得分:0)

另一种选择是使用http://localhost:4200/vendor.bundle.js:79652:44在查询中进行连接。然后你不需要在PHP中循环结果,你可以fetchAlljson_encode和输出。

$sql = "SELECT id, name, CONCAT('http://', image_url) AS image_url FROM categories";
$catlist = $pdo->query($sql);
$categories = $catlist->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($categories);

答案 2 :(得分:0)

您不需要使用循环和$newArray如果使用fetchall()它会将结果作为数组返回,您可以通过两行实现您想要的结果

<?php
$catlist = $pdo->query("SELECT id,name,CONCAT('http://x.com/', image_url) AS imgURl FROM `categories`")->fetchall(PDO::FETCH_ASSOC);

echo json_encode(array_values($catlist));

?>