我有一个带有嵌套数组的数组,我需要将其转换为给定格式的字符串。
这是针对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
}]
答案 0 :(得分:3)
您可以按以下方式使用array_map,
$temp = array_map(function ($item) {return array_combine(["x", "y"], $item); }, $temp);
我创建了['x','y']
,将其作为密钥来代替$item
的密钥。
array_combine —通过使用一个数组作为键并使用另一个数组作为其值来创建数组
答案 1 :(得分:1)
只需遍历数组并创建一个新数组,然后json_encode
。
$data = [];
foreach ($rows as $row) {
$data['x'] = $row['date'];
$data['y'] = $row['price'];
}
json_encode($data);