我有类似JSON格式的数据。
String s1 = "abcde";
Function<Integer,String> func1 = s1::substring;
String sub1 = func1.apply(3); // always applied on the same String
BiFunction<String, Integer, String> biFunc1 = String::substring;
String sub2 = biFunc1.apply(s1,3); // applied on whichever String you supply
现在我想将其转换为HTML表格,该表格将显示如下。
[
{
"user_id": "7",
"field": "1",
"value": "45"
},
{
"user_id": "10",
"field": "1",
"value": "53"
},
{
"user_id": "7",
"field": "2",
"value": "40"
},
{
"user_id": "10",
"field": "2",
"value": "45"
},
{
"user_id": "7",
"field": "3",
"value": "65"
},
{
"user_id": "10",
"field": "3",
"value": "69"
},
{
"user_id": "7",
"field": "4",
"value": "14"
},
{
"user_id": "10",
"field": "4",
"value": "13"
}
]
我的json数据在 user_id 1 2 3 4
7 45 40 65 14
10 53 45 69 13
中
我的代码是:
$lika
请帮助我做到这一点。
答案 0 :(得分:0)
您可以使用user_id
作为数组键创建一个新数组,并且每个键创建一个保存值的数组。
要创建表,可以循环该数组(在示例中为$results
),其中数组键可以用作列user_id
的用户,并使用值循环该数组以创建其他列。
$results = [];
foreach ($arrays as $value) {
$results[$value['user_id']][] = $value['value'];
}
答案 1 :(得分:0)
要将field_id保留为结果数组中的键,并从结果中打印HTML,仅用于演示目的:)
$arr = [];
foreach($data as $v){
$arr[$v['user_id']][$v['field']] = $v['value'];
}
$i = 0;
echo '<table>';
foreach ($arr as $userId => $data) {
if ($i === 0) {
echo '<tr>';
echo '<td>user-id</td>';
foreach (array_keys($data) as $field) {
echo "<td>$field</td>";
}
echo '</tr>';
}
echo '<tr>';
echo "<td>$userId</td>";
foreach ($data as $field => $value) {
echo "<td>$value</td>";
}
echo '</tr>';
$i++;
}
echo '</table>';