【问题标题】:How to convert JSON into html table by selecting one JSON key as columns如何通过选择一个 JSON 键作为列将 JSON 转换为 html 表
【发布时间】:2018-06-27 06:47:35
【问题描述】:

我有类似这样的 JSON 格式数据。

[
    {
        "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"
    }
]

现在我想把它转换成 Html 表格,它会像这样显示。

   user_id         1       2      3        4
   7              45      40     65       14
   10             53      45     69       13

我的 json 数据在$lika 我的代码是:

    $arr = [];
    $id = "";
    foreach($lika as $value){
        if($id === $value['user_id']){
            echo "hfihf";
            array_push($v, $value['value']);
        }
        else{
            $v = [];
            array_push($v, $value['user_id']);
            array_push($v, $value['value']);
        }
        $arr[] = $v;
        $id = $value['user_id'];
    }
    print_r($arr);

请帮我做这件事。

【问题讨论】:

  • @sjaustirni。我已经添加了我已经完成的代码。
  • 代码遇到了什么问题?
  • 我得到带有 user_id 和一个值的数组。 [0] => 数组([0] => 7 [1] => 45)
  • 请您显示无法运行的特定代码。
  • 你试过的js、html等在哪里?

标签: php jquery html arrays json


【解决方案1】:

将 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>';

【讨论】:

    【解决方案2】:

    您可以使用user_id 作为数组键创建一个新数组,每个键创建一个包含值的数组。

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

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

    Demo

    【讨论】:

      猜你喜欢
      • 2013-08-28
      • 2019-08-10
      • 2016-08-17
      • 2023-03-12
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      相关资源
      最近更新 更多