2016-05-17 51 views
-2

我想追加一些JSON我从一个API响应到一封电子邮件,我希望将JSON输出到一个HTML表格。问题是JSON响应看起来不像我之前使用过的任何东西。如何使用此JSON响应?

$vs_getClickPath = wp_remote_get('url'); 
$clickPath_body = wp_remote_retrieve_body($vs_getClickPath); 
$notification['message'] .= $clickPath_body; 

这给了我下面的:

[ 
    ["date\/time", "page name visited", "city", "region", "country", "company name\/isp", "identity", "search\/referral"], 
    ["2016-05-17 10:56:05", "Home Page", "Buffalo", "New York", "United States", "I-evolve Technology Services", "", ""] 
] 

所有的关键是第一位在一个阵列然后在另一个数组中的值显示出来。尝试使用索引只是获得单个字符,foreach不起作用。我试过json_decode,但它不输出任何东西print_rvar_dump

是否有反正我可以通过这个循环并输出数据到HTML表格?第一个数组是表格标题,之后的每个数组都是表格行。

+0

只是遍历键数组并使用索引来获取值数组中的值。像这样:'foreach($ result [0] as $ index => $ key){$ value = $ result [1] [$ index]; var_dump($ key,$ value); }'。 –

+0

你需要从它? –

+2

*“'我试过json_decode,但它不会输出任何与print_r或var_dump。”*显示你的尝试。 –

回答

3

我用json_decode($str, true),它返回可与合作的数组:

$str = '[["date\/time","page name visited","city","region","country","company name\/isp","identity","search\/referral"],["2016-05-17 10:56:05","Home Page","Buffalo","New York","United States","I-evolve Technology Services","",""]]'; 
$json = json_decode($str, true); 
echo '<pre>'; 
print_r($json); 

回报

Array 
(
    [0] => Array 
     (
      [0] => date/time 
      [1] => page name visited 
      [2] => city 
      [3] => region 
      [4] => country 
      [5] => company name/isp 
      [6] => identity 
      [7] => search/referral 
     ) 

    [1] => Array 
     (
      [0] => 2016-05-17 10:56:05 
      [1] => Home Page 
      [2] => Buffalo 
      [3] => New York 
      [4] => United States 
      [5] => I-evolve Technology Services 
      [6] => 
      [7] => 
     ) 

) 

在通话设置truejson_decode()使得函数返回一个数组。如果你不想要一个数组,你可以通过将该选项退出呼叫来返回一个数组。

PHP's json_decode()

+0

哦,是的..这就是我之前尝试的,但我只是不断得到“1”作为我的输出。这似乎是与重力形式(我使用的电子邮件插件)。当我尝试在电子邮件中使用print_r时,它会变得焦躁不安。对不起,应该在发布之前发现这个问题 – user985952

+0

@ user985952:你打算如何使用'print_r'?它的第二个参数控制它是返回一个字符串还是只是回声。 –

+0

@火箭Hazmat我试着这个: $ clickPath_body = wp_remote_retrieve_body($ vs_getClickPath); \t $ json = json_decode($ clickPath_body,true); \t $ notification ['message']。= print_r($ json); – user985952

0

从你的输出,其结果是阵列

[
[
"date\/time", "page name visited", "city", "region", "country", "company name\/isp", "identity", "search\/referral" ], [
"2016-05-17 10:56:05", "Home Page", "Buffalo", "New York", "United States", "I-evolve Technology Services", "", "" ] ]

数组你CAND在foreach内部的foreach找到值。

foreach ($clickPath_body as $array) { foreach ($array as $string) { echo $string; } echo "<br>"; }