2015-06-18 4 views
0

я работал с json_encode() в PHP и выходе:формат JSON с json_encode()

{"Inventors:":"Wilson; Nestor Antonio Lagos (Santiago, CL)"} 
{"Applicant: ":"Nestor Antonio Lagos Santiago N\/A CL"} 
{"Name":"Type"} 

И я хочу, формат JSON вроде как:

json = { 
"Inventors:":"Wilson; Nestor Antonio Lagos (Santiago, CL)", 
"Applicant: ":"Nestor Antonio Lagos Santiago N\/A CL", 
"Name":"Type" 
}; 

Я но всегда конверсия моего массива такая же.

$contents = "<table><tr><td>Row 1 Column 1</td><td>Row 1 Column 2</td></tr><tr><td>Row 2 Column 1</td><td>Row 2 Column 2</td></tr></table>"; 

$DOM = new DOMDocument; 
$DOM->loadHTML($contents); 

$items = $DOM->getElementsByTagName('tr'); 

function tdrows($elements) 
{ 
    $str = ""; 
    $i = 0; 
    foreach ($elements as $element) 
    { 
     if($i == 0) { 
      $itm = $element->nodeValue; 
      $i++; 
     } else { 
      if(strlen($element->nodeValue) > 1) 
      $array = array($itm => trim($element->nodeValue)); 
     } 
     //$str .= $element->nodeValue . ", "; 
    } 
    echo json_encode($array); 
} 
+0

Эти два примера не показывают одну и ту же структуру данных. Почему это другое? – Sven

+0

Какова переменная, которую вы кодируете – chiliNUT

+0

Я хочу вторую структуру, потому что данные относятся к одному и тому же идентификатору – cnavarreteliz

ответ

0

Вы можете создать необходимый вывод JSon используя следующий фрагмент кода:

<?php 
$people = array(); 
$people['Inventors']='Wilson; Nestor Antonio Lagos (Santiago, CL)'; 
$people['Applicant']='Nestor Antonio Lagos Santiago N\/A CL'; 
$people['Name']='Nestor Antonio Lagos Santiago N\/A CL'; 

echo json_encode($people); 
?> 

Вы получаете вывод так потому, что вы создаете новый массив и вставки в $ массива. Используйте следующий код:

$array[$itm] = trim($element->nodeValue); 

и он будет работать.

+0

Спасибо! Прекрасно подходит для меня :) – cnavarreteliz

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