d3.js将不同父节点上的相同的子节点连接到一起

酱油白 发布于 2016/12/26 20:14
阅读 561
收藏 0

d3.js怎样将不同父节点上的相同的子节点连接到一起呢?以下是我将查询到的数据用进行处理的php语句:

  $sql = "select * from  $fruit where $colfirst='$serach'";  
  $query = mysql_query($sql);  
  while($result= mysql_fetch_assoc($query)){  
    $data[]=$result;  
  }  
  //一层关系  
  $p=0;  
  $source = 0;  
  $source1 = 0;  
  foreach ($data as $row ){  
    $Target = $row[$colfirst];  
    $IPaddress = $row[$coltwo];  
    //nodes0  
    if($p++==0){  
      $node[]= '{"name":"'.$Target.'","group":5,"size":300}';  
    }  
    $node[]= '{"name":"'.$IPaddress.'","group":1,"size":60}';  
    //links0  
    $source++;  
    @$link .= '{"source":'.$source.',"target":0},';  
    $target = $source;  
    $source1= $source; 
   
  //二层关系  
    $sql1 = "select * from  $fruit where $coltwo = '{$IPaddress}'";  
    $query1 = mysql_query($sql1);  
    while ($result1 = mysql_fetch_assoc($query1)) {  
        $data1[] = $result1;  
      }  
    foreach ($data1 as $row1) {  
      $Target1 = $row1[$colfirst];  
      $IPaddress1 = $row1[$coltwo]; 
 
 //这里排除掉相同节点
      if (!in_array('{"name":"'.$Target1.'","group":2,"size":60}',$node)) {  
        $node[]= '{"name":"'.$Target1.'","group":2,"size":60}';  
      $source1++;  
      $link .= '{"source":'.$source1.',"target":'.$target.'},';  
      $source++; 
}
      }  
  }
以上我将相同的节点排除掉了,但这样做明显是不对的,因为不同的父节点上可能有相同的子节点,而我要将这些相同的子节点连接起来,合并为一个,要怎么做呢?代码应该怎么写,有懂的大神教教我吗?谢谢了。

加载中
返回顶部
顶部