我正在使用可用的 API 来发送请求并接收 json 和 xml 格式的结果。我可以这样做,但如何正确显示返回的数据?
我使用 json_decode 并将 xml 数据分配给一个数组和 print_r 那些。它出现在大量的垃圾数据中。
如何在表格中显示它?或者我必须在显示之前先将数据保存到单个文件或数据库中吗?
我是 PHP 新手,因此不确定如何实现。
我正在使用可用的 API 来发送请求并接收 json 和 xml 格式的结果。我可以这样做,但如何正确显示返回的数据?
我使用 json_decode 并将 xml 数据分配给一个数组和 print_r 那些。它出现在大量的垃圾数据中。
如何在表格中显示它?或者我必须在显示之前先将数据保存到单个文件或数据库中吗?
我是 PHP 新手,因此不确定如何实现。
JSON 是一个多维数组,在我看来,查看它的最简单方法就是
var_dump($json_array);
不过,这可能是您所指的数据块。
这不是一种非常适合表格的格式,因为表格本质上是二维的,而 JSON 可以是多维的。
您可以展平阵列,然后将其显示为表格。
function flatten_json($json, &$flat, $key) {
    // First check the base case: if the arg is not an array,
    //   then it's data to be inserted in the flat array.
    if (!is_array($json)) {
        $flat[$key] = $json;
    } else {
        // It's an array, to reduce the depth of the json,
        // we remove this array, by iterating through it,
        // sending the elements to be checked if they're also arrays,
        // or if they're data to be inserted into the flat array.
        foreach ($json as $name => $element) {
            flatten_json($element, $flat, $key.'_'.$name);
        }
    }
}
要使用这个函数,你首先声明你的平面数组:
$flat = array();
然后将它传递给函数,使用你的 json 和一个你想成为外键的键,如果你确定你的 json 是一个数组,这几乎可以保证,你可以将键留空。
flatten_json($json_array, $flat, '');
现在 $flat 将具有扁平化的 json,您可以将其打印为表格,如果您有许多 json 结果要打印,可能会打印到 csv 中。
如果你的 json 是:
array(
    'person' => array(
        'name' => 'timmy',
        'age' => '5'
    ),
    'car' => array(
        'make' => 'ford',
        'engine' => array(
            'hp' => 260,
            'cyls' => 8
        )
     )
 )
然后 $flat 将如下所示:
array(
    'person_name' => 'timmy',
    'person_age' => 5,
    'car_make' => 'ford',
    'car_engine_hp' => 260,
    'car_engine_cyls' => 8
)
如果你想打印在一个漂亮的 html 表中:
echo "<table><tr>";
foreach ($flat as $header => $value) {
    echo "<th>$header</th>;
}
echo "</tr><tr>";
foreach ($flat as $header => $value) {
    echo "<td>$value</td>";
}
echo "</tr></table>";
我有点困惑。但如果你指的是一个 xml 文件,它会像这样出现:
 <books> 
  <book published="2011-07-24 19:40:26"> 
  <title>I left my heart on Europa</title> 
   <author>Ship of Nomads</author>
 < /book>
  <book published="2011-07-24 19:40:26"> 
  <title>I left my liveron Europa</title> 
   <author>Ship of Nomads</author>
 < /book> 
</books>
您可以在这里使用simplexml_load_file做一些 php 技巧。来自上述 xml 的示例,您可以使用以下代码:
    $mybooks= simplexml_load_file('books.xml'); 
echo "<ul id="booklist">"; 
foreach ($mybooks as $bookinfo):
 $title=$bookinfo->title; 
$author=$bookinfo->author; 
$date=$bookinfo['published']; 
echo "<li><div class="title">".$title."</div><div class="author">by ".$author."</div><b>".$date."</b></li>";
 endforeach; echo "</ul>";
希望这可以帮助。