簡體   English   中英

如何在php中顯示具有列名的json數據

[英]How to show json data with column name in php

我有一些JSON數據,我能夠從中檢索數據,但我希望數據與列一起顯示
這是JSON

{"ObjectId":43,"ObjectName":"MEGA MELA","ObjectTitle":"Event Created by API","ObjectDescription":"NEW EVENT BY API","ObjectLabel":"","ObjectTypeId":33,"MaxFieldsExpected":5,"ObjectValueType":null,"ObjectControlType":"","IsDeleted":true,"CreatedDate":"2019-05-22T07:56:03.767","CreatedBy":null,"EditedDate":null,"EditedBy":null,"DeletedDate":null},{"ObjectId":44,"ObjectName":"Event x11","ObjectTitle":"Event Created by API","ObjectDescription":"NEW EVENT BY API","ObjectLabel":"","ObjectTypeId":33,"MaxFieldsExpected":5,"ObjectValueType":null,"ObjectControlType":"","IsDeleted":true,"CreatedDate":"2019-05-23T00:33:50.7","CreatedBy":null,"EditedDate":null,"EditedBy":null,"DeletedDate":null}]}

這是我現在正在做的

  $jsonData = json_decode($data, TRUE);

  foreach ($jsonData as $d) {
    foreach ($d as $ins) {  
  echo "<h3>".$ins['ObjectName']."</h3>";
  echo "<h3>".$ins['ObjectDescription']."</h3>";
    }
}

輸出:

超級美樂
API的新活動
賽事x11
API的新活動

我想要這種格式

ObjectId  | ObjectName | ObjectTitle           | ObjectDescription | ObjectLabel | ObjectTypeId | MaxFieldsExpected | ObjectValueType | ObjectControlType | IsDeleted | CreatedDate | CreatedBy | EditedDate |  EditedBy
43        |  MEGA MELA |  Event Created by API | NEW EVENT BY API | .............................................................................. 

上面我正在借助數組鍵獲取數據,現在我想從JSON提取keys ,例如ObjectIdObjectName使它們成為表的標頭,並在列中顯示所有數據

從以下array2table將老要點用於array2tablehttp : array2table /

<?php
function array2table($array, $recursive = false, $null = '&nbsp;')
{
    // Sanity check
    if (empty($array) || !is_array($array)) {
        return false;
    }
    if (!isset($array[0]) || !is_array($array[0])) {
        $array = array($array);
    }
    // Start the table
    $table = "<table>\n";
    // The header
    $table .= "\t<tr>";
    // Take the keys from the first row as the headings
    foreach (array_keys($array[0]) as $heading) {
        $table .= '<th>' . $heading . '</th>';
    }
    $table .= "</tr>\n";
    // The body
    foreach ($array as $row) {
        $table .= "\t<tr>" ;
        foreach ($row as $cell) {
            $table .= '<td>';
            // Cast objects
            if (is_object($cell)) { $cell = (array) $cell; }
            if ($recursive === true && is_array($cell) && !empty($cell)) {
                // Recursive mode
                $table .= "\n" . array2table($cell, true, true) . "\n";
            } else {
                $table .= (strlen($cell) > 0) ?
                    htmlspecialchars((string) $cell) :
                $null;
            }
            $table .= '</td>';
        }
        $table .= "</tr>\n";
    }
    $table .= '</table>';
    return $table;
}
$data ='[{"ObjectId":43,"ObjectName":"MEGA MELA","ObjectTitle":"Event Created by API","ObjectDescription":"NEW EVENT BY API","ObjectLabel":"","ObjectTypeId":33,"MaxFieldsExpected":5,"ObjectValueType":null,"ObjectControlType":"","IsDeleted":true,"CreatedDate":"2019-05-22T07:56:03.767","CreatedBy":null,"EditedDate":null,"EditedBy":null,"DeletedDate":null},{"ObjectId":44,"ObjectName":"Event x11","ObjectTitle":"Event Created by API","ObjectDescription":"NEW EVENT BY API","ObjectLabel":"","ObjectTypeId":33,"MaxFieldsExpected":5,"ObjectValueType":null,"ObjectControlType":"","IsDeleted":true,"CreatedDate":"2019-05-23T00:33:50.7","CreatedBy":null,"EditedDate":null,"EditedBy":null,"DeletedDate":null}]';
$jsonData = json_decode($data, TRUE);
echo array2table($jsonData);
?>

演示: https : //3v4l.org/0n27Y

在上面的示例中,您可以使用key來打印文件名,而value將是數據。

在這里,我們可以首先循環字段名稱以創建標題

我在這里用桌子。

<table>
 <?php foreach ($d as $ins) { ?>

  //printing field heads
  <tr>
  <?php 
   foreach ($ins as $key=>$value) {  
     echo "<td><h3>".$key."</h3></td>";
   } ?>
  </tr>

  //printing value row
  <tr>
  <?php
   foreach ($ins as $key=>$value) {  
     echo "<td><h3>".$value."</h3></td>";
   } ?>
  </tr>
  } ?>
</table>

第二個foreach應該看起來像: foreach ($d as $key => $ins)然后在$key變量處得到索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM