json多维数组和jquery?

时间:2010-11-20 22:53:32

标签: php javascript jquery zend-framework

我使用PHP创建此输出:

  

foreach($ bk as $ blink){      $ out [“url”] [] = $ blink-> url;      $ out [“anchor”] [] = $ blink->锚;   }

     

$ json = Zend_Json :: encode($ out);   echo($ json);

我想通过$ .ajax调用来接收和处理输出。

你能指点我一个关于javascript / jquery的多维数组的好教程,还是帮助我循环*通过json结果?我对此感到有些困惑。

谢谢!

  • 我试图将它们放在桌子上,所以我将使用<td>url-i</td><td>anchor-i</td>。这一部分,我想出了如何。在url-ianchor-i上添加正确的值是个问题。

3 个答案:

答案 0 :(得分:1)

我认为JSON的输出类似于:

{'url': ['url1', 'url2', ... ],
 'anchor': ['anchor1', 'anchor2', ... ]}

如果是这种情况,那么它们将具有相同的长度(并且重要的是相等的索引),并且您可以使用jQuery.each()遍历其中一个。

$.getJSON('jsonapp.php', function(data) {
  $.each(data.url, function(index, url) {
    var anchor = data.anchor[index];
    $('#mytable').append('<tr><td>' + url + '</td><td>' + anchor +'</td></tr>');
  });
});

我没有运行该代码,因此可能存在一些缺陷,但这就是它的要点。

答案 1 :(得分:1)

PHP可以单独尝试cast objects into arrays,对于简单的东西,它通常可以正常工作。

对于多维数组,当涉及到数组时,Javascript与大多数其他高级编程/脚本语言没有太大区别。真的,任何关于多维数组的在线教程都会做得很好。多维数组只是一个数组数组。

当您收到字符串客户端时,您只想解析它。 jQuery有its own method,但您可以使用JSON.parse。之后,根据您设置阵列的方式,您需要做类似的事情。

<? $count = count($json_parsed['url']); for($i = 1; $i < $count; $i++) : ?>
<td><?=$json_parsed['url'][$i];?></td>
<td><?=$json_parsed['anchor'][$i];?></td>
<? endfor; ?>

这可能在哲学上不是最好的方法。如果你有一大堆对象并且你想用它们创建一个表,最好的方法是创建一个由关联数组表示的那些对象的数组(有点像其他编程语言中的哈希表)。 PHP本身尝试将对象转换为关联数组。如果Zend_Json::encode自动执行,我不会感到惊讶。如果是这样,你可能想简单地拉:

echo Zend_Json::encode($bk);

如果没有,请告诉我,我们将讨论如何做到这一点。

答案 2 :(得分:0)

您可以查看任何模板框架,但对于这种情况,它可以检查这两个中的一个:pure by beebolejquery pure html templates

自己动手可能很诱人,但为什么要彻底改造井 - 我从我的经验中知道,框架的速度大约是自制代码的2倍。