我有一组数据未归一化。我在PHP中进行规范化,它工作得很好。创建一个PHP版本的PHP多维关联阵列
数据集看起来像这样(截图如下),它是一个很大的寿。我只对类别和类型感兴趣。有了这两个,我可以制作出好的桌子和菜单。
问题
现在的问题是,我切换到一个AJAX系统和数据不再进入PHP。相反,它使用node.js/mongodb直接进入页面。有没有一种方法可以让我做这样的事情:
<script type="text/javascript">
// Array containing all the objects from the server
// looks like this
var data = [Object, Object, Object];
var artikelen = [];
for(var i=0; i<data.length; i++){
artikelen[data[i].categorie][data[i].type][] = data[i];
}
</script>
// ----------------
老样子
// ------ -----------
在PHP我这样做:
$sql = "SELECT *
FROM mydb
WHERE merk = 'webecos'
ORDER BY categorie, type, code";
$result = $wpdb->get_results($sql);
foreach($result as $row){
$artikelen[$row->categorie][$row->type][] = $row;
}
现在我可以好好排序表/菜单与嵌套循环。我使用的代码是这样的。
<ul id="inkoop_menu">
<?php foreach ($artikelen as $categorie => $row): ?>
<li>
<a class="inkoop_button" data-menu="categorie" href="#">
<?=$categorie; ?>
</a>
<ul>
<?php foreach ($row as $type => $artikel): ?>
<li>
<a class="inkoop_button" data-menu="type" href="#">
<?=$type; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php endforeach; ?>
</ul>
编辑
也许这是一个只有更好理解。我后面的阵列是这样的:
array['categorie-name']['type-name'][x] = whole object;
JavaScript没有像PHP的'[] ='这样的推式运算符,您需要使用'push'来代替。 – Gumbo 2012-03-12 20:07:14