如何从 php 中的 sql pdo 数据形成 Json 数组?
How to form Json array from sql pdo data in php?
我的代码没有显示我需要的东西,告诉我我做错了什么
$new_array =[];
foreach($result as $row)
{
$array =[
'id'=> $row["id"],
'summ' => $row["summ"],
];
foreach($array AS $key => $val) {
$new_array[] = $val;
}
}
echo json_encode($new_array);
输出如下结果
["26","180","25","35","24","50","23","50","22","100"]
但我需要不同的结果,但我做不到。
下面是一个示例:
[
{"26","180"},
{"25","35"},
{"24","50"},
{"23","50"},
{"22","100"}
]
请告诉我如何实现这个?
检查这个:
foreach($result as $row)
$array[] = ['id'=>$row["id"], 'summ'=>$row["summ"]];
echo json_encode($array);
例如,如果您的 $result 包含这样一个数组:
$result = [['id'=>1, 'summ'=>2] , ['id'=>3, 'summ'=>4] , ['id'=>5, 'summ'=>6]];
脚本输出将是:
[
{"id":1,"summ":2},
{"id":3,"summ":4},
{"id":5,"summ":6}
]
您可以跳过内部循环:
$new_array = [];
foreach($result as $row)
{
$new_array[] = [
$row['id'],
$row['summ']
];
}
echo json_encode($new_array);
这应该会给你结果:
[
["26","180"],
["25","35"],
...
]
除了其他答案,
这种数组转换我一般用array_map
$result = [['id' => 1, 'summ' => 2], ['id' => 3, 'summ' => 4], ['id' => 5, 'summ' => 6]];
$output = array_map(function ($item) {
return [$item['id'], $item['summ']];
}, $result);
我的代码没有显示我需要的东西,告诉我我做错了什么
$new_array =[];
foreach($result as $row)
{
$array =[
'id'=> $row["id"],
'summ' => $row["summ"],
];
foreach($array AS $key => $val) {
$new_array[] = $val;
}
}
echo json_encode($new_array);
输出如下结果
["26","180","25","35","24","50","23","50","22","100"]
但我需要不同的结果,但我做不到。 下面是一个示例:
[
{"26","180"},
{"25","35"},
{"24","50"},
{"23","50"},
{"22","100"}
]
请告诉我如何实现这个?
检查这个:
foreach($result as $row)
$array[] = ['id'=>$row["id"], 'summ'=>$row["summ"]];
echo json_encode($array);
例如,如果您的 $result 包含这样一个数组:
$result = [['id'=>1, 'summ'=>2] , ['id'=>3, 'summ'=>4] , ['id'=>5, 'summ'=>6]];
脚本输出将是:
[
{"id":1,"summ":2},
{"id":3,"summ":4},
{"id":5,"summ":6}
]
您可以跳过内部循环:
$new_array = [];
foreach($result as $row)
{
$new_array[] = [
$row['id'],
$row['summ']
];
}
echo json_encode($new_array);
这应该会给你结果:
[
["26","180"],
["25","35"],
...
]
除了其他答案,
这种数组转换我一般用array_map
$result = [['id' => 1, 'summ' => 2], ['id' => 3, 'summ' => 4], ['id' => 5, 'summ' => 6]];
$output = array_map(function ($item) {
return [$item['id'], $item['summ']];
}, $result);