创建一张家族谱系表,绝对挑战和锻炼你的能力,来试试吧! 本帖最后由 microcoy 于 2013-08-29 17:01:40 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的数据好几十万条,全部贴上吗,光SQL文件都上百兆,我只要方法呀! 其中自己的memberid也可以作为别人的...爷奶父母兄弟姐妹子女孙子孙女...编号,不知道你说的是否是这个意思,补充一下! sql文件链接地址,请下载http://pan.baidu.com/share/link?shareid=1911135749&uk=2500727874 select fatherid, motherid, group_concat(monkeyid) as child from arp_individual group by concat(fatherid, motherid) order by fatherid, motherid最好在 monkeyid、fatherid、motherid 上建索引while($row = mysql_fetch_assoc($rs)) {// $data[$row['fatherid']][] = $row; //按 fatherid 聚类 $data[$row['motherid']][] = $row; //按 motherid 聚类}$len = count($data); //为防止死循环而设while($data && $len--) { $key = key($data); $res[$key] = array_shift($data); genealogy($res[$key], $data);}function genealogy(&$items, &$data, $deep=0) { foreach($items as &$item) { $item['child'] = explode(',', $item['child']); $item['deep'] = $deep; foreach($item['child'] as $i=>$monkeyid) { if(isset($data[$monkeyid])) { $item['child'][$monkeyid] = $data[$monkeyid]; unset($item['child'][$i]); unset($data[$monkeyid]); genealogy($item['child'][$monkeyid], $data, $deep+1); } } }}print_r($res); 怎样检测数组里数据为连续的3位数? (给点意见吧..) zend 8.0 || EclipsePHP 怎么选中代码区块呢? php readdir PHP如何防止重复登录 数据库连接查询的问题 求當前日期周日的日期 怎样利用PHP将从数据库中读取的数据保存再变量中? limit的问题 ID问题!没人回答吗? 关于一些简单的jquery问题 通过获取数据库中的用户权限来显示不同的前台页面 跳转传值
http://pan.baidu.com/share/link?shareid=1911135749&uk=2500727874
最好在 monkeyid、fatherid、motherid 上建索引
while($row = mysql_fetch_assoc($rs)) {
// $data[$row['fatherid']][] = $row; //按 fatherid 聚类
$data[$row['motherid']][] = $row; //按 motherid 聚类
}$len = count($data); //为防止死循环而设
while($data && $len--) {
$key = key($data);
$res[$key] = array_shift($data);
genealogy($res[$key], $data);
}function genealogy(&$items, &$data, $deep=0) {
foreach($items as &$item) {
$item['child'] = explode(',', $item['child']);
$item['deep'] = $deep;
foreach($item['child'] as $i=>$monkeyid) {
if(isset($data[$monkeyid])) {
$item['child'][$monkeyid] = $data[$monkeyid];
unset($item['child'][$i]);
unset($data[$monkeyid]);
genealogy($item['child'][$monkeyid], $data, $deep+1);
}
}
}
}
print_r($res);