2016-05-17 5 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_r или var_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] => 
     ) 

) 

Установка true в вызове json_decode() делает функция возвращает массив. Если вам не нужен массив, вы можете вернуть abject, оставив опцию вне вызова.

PHP's json_decode()

+0

О да .. это то, что я пытался раньше, но я просто продолжал получать «1» назад в качестве вывода. Кажется, что-то с Gravity Forms (плагин электронной почты, который я использую). Когда я пытаюсь использовать print_r в сообщении электронной почты, это вызывает брокеры. Извините, должен был поймать, что перед публикацией – user985952

+0

@ user985952: Как вы пытаетесь использовать 'print_r'? Второй параметр определяет, вернет ли он строку или просто перефразирует ее. –

+0

@Rocket 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", "", "" ] ]

вы найдете канд значение с Еогеаспом внутри Еогеаспа.

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

Смежные вопросы