如何通过选择一个JSON键作为列将JSON转换为html表

时间:2018-06-27 06:47:36

标签: php jquery html arrays json

我有类似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

请帮助我做到这一点。

2 个答案:

答案 0 :(得分:0)

您可以使用user_id作为数组键创建一个新数组,并且每个键创建一个保存值的数组。

要创建表,可以循环该数组(在示例中为$results),其中数组键可以用作列user_id的用户,并使用值循环该数组以创建其他列。

$results = [];
foreach ($arrays as $value) {
    $results[$value['user_id']][] = $value['value'];
}

Demo

答案 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>';