我有一組數據未歸一化。我在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