对父子关系数组进行排序,其中两个子项共享数组中的父项并使用div

时间:2016-04-02 10:09:15

标签: javascript php css neo4j

我有以下数据从neo4j查询中获取,发回的数据格式为

home->parent->child1
home->parent->child2

home->parent2->child1

home->parent3->child1
home->parent3->child2
home->parent3->child3

我正在尝试使用javascript来显示html,这应该是这样的

<div id="parent1">
  <div id="child1"></div>
  <div id="child2"></div>
</div>
<div id="parent2">
  <div id="child1"></div>
</div>

我尝试了loopong throigh查询并试图让父对象成为对象的索引而子对象是其下的值

我会在php

中这样做
$jsonContents = (object)("parent"=>"child","parent"=>"child"....);
$array = array();
foreach($jsonContents as $jsCo=>$jsoCont){
  $array[$jsoCont->parent][] = $jsoCont->child;
}

这将返回

$ array as

home->parent1->[0]->child
             ->[1]->child
      parent2->[0]->child...

这样我就可以避免检查home parent类别的唯一性,并将它们放在层次结构中,这样我就可以在MVC的View部分正确解释它,以创建我的div结构。

这是示例json数据的URL

http://www.jsoneditoronline.org/?id=bdda268982eb431d361c25e9035bbc99

1 个答案:

答案 0 :(得分:0)

没有答案,我自己解决了。 这里

var data = 'data shown in link above';
var myArr = [];

$.each(data, function(index, element) {
  var parent = String(element.parent.properties.name);
  var child = String(element.child.properties.name);

  if(myArr[parent]){
    myArr[parent][(myArr[parent].length)] = child;
  } else {
    myArr[parent] = Array(child);
  }

});

希望这有助于人们。 :)