2016-05-17 8 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", "", ""] 
] 

キーのすべての値が現れ、別のアレイで、その後1つの配列の最初に来ます。インデックスで作業しようとすると、個々の文字が取得され、foreachは機能しません。 json_decodeを試しましたが、print_rまたはvar_dumpで何も出力されません。

私はこれをループしてHTMLテーブルに出力することができますか?最初の配列はテーブルのヘッダとなり、その後のすべての配列はテーブルの行になります。

+0

キー配列をループし、インデックスを使用してvalues配列の値を取得します。次のようなものがあります: '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)を使用し、それがで加工することができる配列が返さ:json_decode()への呼び出しでtrueを設定

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] => 
     ) 

) 

は、関数は配列を返すことになり

$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); 

戻ります。配列を必要としない場合は、オプションを呼び出しの外に残してabjectを返すことができます。あなたの出力から

PHP's json_decode()

+0

ああええ、それは私が以前に試していたものですが、私はちょうど私の出力として "1"を得続けました。それはGravity Forms(私が使用している電子メールプラグイン)のものだと思われます。電子メールメッセージでprint_rを使用しようとすると、それは嫌がらせになります。申し訳ありませんが投稿前にそれをキャッチしてください – user985952

+0

@ user985952:どのように 'print_r'を使用しようとしていますか? 2番目のパラメータは、文字列を返すかどうかを制御します。 –

+0

@Ross Hazmat私はこれを試しています: $ clickPath_body = wp_remote_retrieve_body($ vs_getClickPath); \t $ json = json_decode($ clickPath_body、true); \t $通知['message']。= print_r($ json); – user985952

0

、結果はあなたがforeachの内部にforeachの持つ値を見つけるCAND配列

[
[
"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 ($clickPath_body as $array) { foreach ($array as $string) { echo $string; } echo "<br>"; }

関連する問題