以上就是给各位分享如何在一个数组PHP中设置子json数组,其中也会对php数组json进行解释,同时本文还将给你拓展json数组push的用法,当新增的为json空对象时,要修改成数组、json数组
以上就是给各位分享如何在一个数组PHP中设置子json数组,其中也会对php 数组 json进行解释,同时本文还将给你拓展json数组push的用法,当新增的为json空对象时,要修改成数组、json数组迭代并从json数组创建自己的数组列表、js处理json数组,如何将json数组按照要求进行分组,分成二维数组?、js将两个数组合并成一个新的json数组等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 如何在一个数组PHP中设置子json数组(php 数组 json)
- json数组push的用法,当新增的为json空对象时,要修改成数组
- json数组迭代并从json数组创建自己的数组列表
- js处理json数组,如何将json数组按照要求进行分组,分成二维数组?
- js将两个数组合并成一个新的json数组
如何在一个数组PHP中设置子json数组(php 数组 json)
我是PHP的新手,我试图从以下响应中获取数据,但我想在子数组中设置此数据.这个怎么做?我有两个不同的表类别和产品.如何明智地显示多个产品类别.
提前致谢!
{
"data" : [
{
"id" : "1",
"recipe_name" : "Tofu Tikka",
"ingredients" : "Firm tofu 1 pack (bite sized cube)\r\n",
"prepration" : "Press tofu with the help of plate to remove moisture
and leave for 30-40 minutes, then cut in cubes.\r\n",
"category_id":"1",
"category_name":"Today's Menu"
}
]
}
如何像下面的方法一样在子数组中设置以上响应
{
"data":[
"category_id":"1",
"category_name":"Today's Menu"
"recipes::[
{
"id":"1",
"recipe_name":"Tofu Tikka",
"ingredients":"Firm tofu 1 pack ",
"prepration":"Press tofu with the help of plate"
}, {
"id":"2",
"recipe_name":"Tikka Paneer",
"ingredients":"Firm tofu 1 pack ",
"prepration":"Press tofu with the help of plate"
},
]
]
}
下面是我的PHP文件
<?PHP
// required headers
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
// include database and object files
include_once '../config/database.PHP';
include_once '../objects/product.PHP';
// instantiate database and product object
$database = new Database();
$db = $database->getConnection();
// initialize object
$product = new Product($db);
// query products
$stmt = $product->read();
$num = $stmt->rowCount();
// check if more than 0 record found
if ($num>0) {
// products array
$products_arr=array();
$products_arr["data"]=array();
// retrieve our table contents
// fetch() is faster than fetchAll()
// https://stackoverflow.com/questions/2770630/pdofetchall-vs-pdofetch-in-a-loop
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// extract row
// this will make $row['name'] to
// just $name only
extract($row);
$product_item=array(
"id" => $id,
"recipe_name" => $recipe_name,
"ingredients" => html_entity_decode($ingredients),
"prepration" => $prepration,
"category_id" => $category_id,
"category_name" => $category_name
);
array_push($products_arr["data"], $product_item);
}
echo json_encode($products_arr);
} else {
echo json_encode(
array("message" => "No products found.")
);
}
?>
解决方法:
我建议您在获取类别及其相关产品的记录时使用JOIN.它将需要单个查询和单个循环来生成所需的数组.这是您可以使用的示例查询.它将获得每个产品记录的类别名称,并且不会显示其中没有产品的那些类别.
SELECT * FROM categories AS c LEFT JOIN offers AS p ON c.category_id=p.category_id WHERE p.offer_id IS NOT NULL
注意:-不要在搜索查询中使用星号(*),而应使用表字段名称.
<?PHP
// initialize empty category array
$categoryArr = [];
// $row has product info with category id and name in it.
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
/* First key of categoryArr variable is category id. It will automatically create array key for each category.
* If an array key already exists, it will add prodcts in it.
*/
$categoryArr[$row['category_id']]['category_id'] = $row['category_id'];
$categoryArr[$row['category_id']]['category_name'] = $row['category_name'];
$categoryArr[$row['category_id']]['products'][] = $row;
}
/* Once loop done with its work. Need to reset array keys with the help of below function. */
$result = array_values($categoryArr);
echo json_encode($result); ?>
我没有测试过,它只是给您一个想法.希望您能改善它.
json数组push的用法,当新增的为json空对象时,要修改成数组
this.data.labelData = []
this.data.labelData.push(newData);
json数组迭代并从json数组创建自己的数组列表
您可以使用 reduce
轻松实现此目的const array = [
{
country: "Bangladesh",deathInLastWeek: [40,42,45,50,55,60,65],maxDeath: 82,minDeath: 5,},{
country: "India",deathInLastWeek: [100,110,95,102,89,120,98],maxDeath: 148,minDeath: 19,{
country: "England",deathInLastWeek: [56,62,56,98,91,87],maxDeath: 124,minDeath: 13,];
const [dataMin,dataMax] = array.reduce(
(acc,curr) => {
const { country,maxDeath,minDeath } = curr;
const minObj = { name: country,value: minDeath };
const maxObj = { name: country,value: maxDeath };
acc[0].push(minObj);
acc[1].push(maxObj);
return acc;
},[[],[]]
);
console.log(dataMin);
console.log(dataMax);
您可以对数组进行 ittertare 并制作两个单独的数组,就像这样
let yourInitialArray = [
{
"country" : "Bangladesh","deathInLastWeek" : [40,"maxDeath" : 82,"minDeath" : 5
},{
"country" : "India","deathInLastWeek" : [100,"maxDeath" : 148,"minDeath" : 19
},{
"country" : "England","deathInLastWeek" : [56,"maxDeath" : 124,"minDeath" : 13
}
]
``
``
let dataMin = yourInitialArray.map((item) => {
return {name : item.country,value : item.minDeath}})
let dataMax = yourInitialArray.map((item) => {
return {name : item.country,value : item.maxDeath}})
``
console your dataMin and dataMax you can get the desired output
,
我用reduce解决了这个问题
const dataMin = data.reduce((acc,item) => {
acc.push({ name: item.country,value: item.minDeath });
return acc;
},[]);
const dataMax = data.reduce((acc,value: item.maxDeath });
return acc;
},[]);
js处理json数组,如何将json数组按照要求进行分组,分成二维数组?
[
{
EquipSerial: ''1001A'',
AlarmName: ''淬火时间超长'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 10:14:58''
},
{
EquipSerial: ''1001A'',
AlarmName: ''淬火时间超长'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 10:07:29''
},
{
EquipSerial: ''1001A'',
AlarmName: ''加热室两根热电偶差异过大'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 09:58:35''
},
{
EquipSerial: ''1001A'',
AlarmName: ''1#烧嘴报警'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 09:57:10''
},
{
EquipSerial: ''1001A'',
AlarmName: ''1#烧嘴报警'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 09:56:47''
},
{
EquipSerial: ''1001A'',
AlarmName: ''2#烧嘴报警'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 09:53:39''
},
{
EquipSerial: ''1001A'',
AlarmName: ''2#烧嘴报警'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 09:53:14''
},
{
EquipSerial: ''1001A'',
AlarmName: ''加热室两根热电偶差异过大'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:55:54''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:42:16''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:41:20''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉搅拌异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:41:19''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:41:19''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉1全自动条件'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:41:09''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉1全自动条件'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:41:08''
},
{
EquipSerial: ''3001A'',
AlarmName: ''断路器OFF'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:40:51''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉1全自动条件'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:40:25''
},
{
EquipSerial: ''1002A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:33:26''
},
{
EquipSerial: ''3001A'',
AlarmName: ''断路器OFF'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:30:02''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉搅拌异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:30:02''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:30:02''
},
{
EquipSerial: ''3001A'',
AlarmName: ''断路器OFF'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:30:02''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉搅拌异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:30:02''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:30:02''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉搅拌异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:29:35''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:29:35''
},
{
EquipSerial: ''3001A'',
AlarmName: ''断路器OFF'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:29:35''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉搅拌异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:29:35''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:29:35''
},
{
EquipSerial: ''3001A'',
AlarmName: ''断路器OFF'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:29:35''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:29:27''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:29:27''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:29:26''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:29:26''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:29:26''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:29:26''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:29:25''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:29:25''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:28:47''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:28:46''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:28:46''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:28:45''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:28:44''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:28:43''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉搅拌异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:26:26''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:26:26''
},
{
EquipSerial: ''3001A'',
AlarmName: ''断路器OFF'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-27 08:26:26''
},
{
EquipSerial: ''3001A'',
AlarmName: ''回火炉搅拌异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:26:25''
},
{
EquipSerial: ''3001A'',
AlarmName: ''电子开关异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:26:25''
},
{
EquipSerial: ''3001A'',
AlarmName: ''断路器OFF'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-27 08:26:25''
},
{
EquipSerial: ''1002A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 16:20:51''
},
{
EquipSerial: ''1003A'',
AlarmName: ''真空排气异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 12:31:22''
},
{
EquipSerial: ''1003A'',
AlarmName: ''油温复位时间超长'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 12:31:22''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 10:49:16''
},
{
EquipSerial: ''4001A'',
AlarmName: ''推拉车全自动条件异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 10:48:36''
},
{
EquipSerial: ''1003A'',
AlarmName: ''油温复位时间超长'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 10:41:19''
},
{
EquipSerial: ''1003A'',
AlarmName: ''真空排气异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 10:30:19''
},
{
EquipSerial: ''1003A'',
AlarmName: ''户袋负压异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 10:13:21''
},
{
EquipSerial: ''1003A'',
AlarmName: ''户袋负压异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 10:12:53''
},
{
EquipSerial: ''1003A'',
AlarmName: ''户袋负压异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 10:12:49''
},
{
EquipSerial: ''1003A'',
AlarmName: ''户袋负压异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 10:12:41''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 09:13:06''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 09:12:04''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 09:12:04''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 09:11:58''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 08:59:01''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 08:07:46''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 08:06:51''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''1'',
ChangeTime: ''2020-09-26 08:06:31''
},
{
EquipSerial: ''1002A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 08:06:20''
},
{
EquipSerial: ''1001A'',
AlarmName: ''滴注流量异常'',
AlarmLevel: ''1'',
AlarmValue: ''0'',
ChangeTime: ''2020-09-26 08:06:17''
}
]
将上面的json数组,按照 EquipSerial和AlarmName相同分成一组,如果只有单独的一个也分成一组,这样怎么处理,麻烦大佬教教我,小弟感激不尽,谢谢!!!
js将两个数组合并成一个新的json数组
var arr1 =
[
254, 850, 257, 950,
0, 1, 0, 0,
0, 0, 0, 0,
17, NaN, 45, 60,
41, 115, 0, 250,
5889.33, NaN, 2132, NaN,
26470, NaN, 66, NaN,
3915, NaN
],
var arr2 =
[
''0'', ''0'', ''0'', ''0'', ''0'', ''0'',
''1'', ''1'', ''1'', ''1'', ''1'', ''1'',
''0'', ''0'', ''0'', ''0'', ''0'', ''0'',
''0'', ''0'', ''1'', ''1'', ''1'', ''1'',
''1'', ''1'', ''1'', ''1'', ''1'', ''1''
]
这两个数组长度一样,想实现合并形成类似下面这样的数据结果
[
{
id:0
number:254,
},
{
id:0
number:850,
},
{
id:0
number:257,
},
]
希望大佬教教我,小弟是菜鸟,谢谢!!!
今天关于如何在一个数组PHP中设置子json数组和php 数组 json的讲解已经结束,谢谢您的阅读,如果想了解更多关于json数组push的用法,当新增的为json空对象时,要修改成数组、json数组迭代并从json数组创建自己的数组列表、js处理json数组,如何将json数组按照要求进行分组,分成二维数组?、js将两个数组合并成一个新的json数组的相关知识,请在本站搜索。
本文标签: