如何使用PHP将递归数组转换为字符串?

时间:2019-05-28 11:32:44

标签: php arrays

我有一个带有嵌套数组的数组,我需要将其转换为给定格式的字符串。

这是针对PHP网站的。我从数据库中获取信息,它以数组的形式出现,我需要将其传递给Charts.js,以便进行绘制。

这是查询数据库时得到的varDump:

array(4) { [0]=> array(2) { ["date"]=> string(19) "2019-05-19 00:00:00" ["price"]=> string(3) "120" } [1]=> array(2) { ["date"]=> string(19) "2019-05-12 00:00:00" ["price"]=> string(3) "100" } [2]=> array(2) { ["date"]=> string(19) "2019-05-05 00:00:00" ["price"]=> string(3) "120" } [3]=> array(2) { ["date"]=> string(19) "2019-04-28 00:00:00" ["price"]=> string(3) "110" } }

这就是我需要的文本字符串:

data: [{
    x: 2019-05-19 00:00:00,
    y: 120
}, {
    t: 2019-05-12 00:00:00,
    y: 100
}, {
    t: 2019-05-05 00:00:00,
    y: 120
}, {
    t: 2019-04-28 00:00:00,
    y: 110
}]

2 个答案:

答案 0 :(得分:3)

您可以按以下方式使用array_map,

$temp = array_map(function ($item) {return array_combine(["x", "y"], $item); }, $temp);

我创建了['x','y'],将其作为密钥来代替$item的密钥。

array_combine —通过使用一个数组作为键并使用另一个数组作为其值来创建数组

Working demo

答案 1 :(得分:1)

只需遍历数组并创建一个新数组,然后json_encode

$data = [];
foreach ($rows as $row) {
    $data['x'] = $row['date'];
    $data['y'] = $row['price'];
}

json_encode($data);