通过将php数组转换为json而无法获得所需的输出

时间:2014-05-20 12:16:41

标签: php json

我从外部网站收到一些文件的名称和链接,并使用以下代码将其转换为JSON字符串:

<?php

include('simple_html_dom.php');
$f = $_GET['f'];
$w = "www.something.com";
$dom = file_get_html($w);
$arr = array("file" => array());

foreach($dom->find('div[id=file_html] div[id=right_data]') as $top){

$n = $top->find('div', 0)->childNodes(0)->innertext;
$l = $top->find('div', 2)->childNodes(0)->childNodes(0)->childNodes(0)->href;
$jj[] = array('name' => $n, 'link' => $l);


}
array_push($arr['file'], $jj);

echo json_encode($arr);

?>

我期望的输出是

{"songs":[{"name":"file1","link":"link1"},{"name":"file2","link":"link2"}]}

但我得到的输出是:

{"songs":[[{"name":"file1","link":"link1"},{"name":"file2","link":"link2"}]]}

有人可以在我的代码中指出错误吗? 谢谢

1 个答案:

答案 0 :(得分:0)

删除这个,

$arr = array("file" => array());
foreach()

的迭代之后

foreach($dom->find('div[id=file_html] div[id=right_data]') as $top){
  // as it is....
}

$arr['file'] = $jj;