我正在尝试从URL中获取一些JSON数据,然后尝试将其放入数组中,然后将其回显到网页。我做错了什么?
$data = json_decode($json, true);
$items = $data["rgDescriptions"];
foreach($items as $item){
$data2 = [
'market_hash_name' => $item["market_hash_name"],
'price' => 0,
'permission' => 'both_side'
];
}
echo json_encode($data2);
答案 0 :(得分:5)
在你的情况下,$ data2变量被循环覆盖。所以它只会在你的数组中存储最后一条记录。将其声明为数组并将每个记录添加到该数组的键中。
$data = json_decode($json, true);
$items = $data["rgDescriptions"];
$data2 = []; // create empty array.
foreach($items as $item){
$data2[] = [
'market_hash_name' => $item["market_hash_name"],
'price' => 0,
'permission' => 'both_side'
];
}
echo json_encode($data2);
答案 1 :(得分:4)
每次循环通过时,您都会覆盖$ data2变量。 在循环外声明数组,并将每个元素添加到数组的新键中。
--resource
答案 2 :(得分:3)
您在$data = json_decode($json, true);
$items = $data;
$data2 = [];
foreach($items as $item){
$data2[] = [
'market_hash_name' => $item["market_hash_name"],
'price' => 0,
'permission' => 'both_side'
];
}
echo json_encode($data2);
循环
$data2
变量
解决方案: -
foreach()
答案 3 :(得分:2)
你需要告诉php为新数组添加新值:
foreach($items as $item){
$data2[] = [
'market_hash_name' => $item["market_hash_name"],
'price' => 0,
'permission' => 'both_side'
];
}