php数组层级,PHP数组分层

我有这样一张桌子:

+----+--------+-------+

| id | parent | title |

+----+--------+-------+

| 1 | NULL | yek |

| 2 | NULL | do |

| 3 | 1 | se |

| 4 | 3 | char |

+----+--------+-------+

我需要这样的层次数据数组.什么是最好的方法 ?

Array

(

[1] => Array

(

[3] => Array

(

[4] =>

)

)

[2] =>

)

请帮我.

解决方法:

// dummy data $recordset should be retrieved from db

$recordset = array(array('id'=>1, 'parent'=>NULL, 'title'=>'yek'),

array('id'=>2, 'parent'=>NULL, 'title'=>'do'),

array('id'=>3, 'parent'=>1, 'title'=>'se'),

array('id'=>4, 'parent'=>3, 'title'=>'char'),

);

function make_tree($recordset)

{

$tree = array();

foreach($recordset as $record) {

if ($record['parent'] !== NULL) {

if (!array_key_exists($record['parent'], $tree) $tree[$record['parent']] = array('record'=>array(), 'children'=>array());

$tree[$record['parent']]['children'][$record['id']] = $record;

} else {

if (!array_key_exists($record['id'], $tree) $tree[$record['id']] = array('record'=>array(), 'children'=>array());

$tree[$record['id']] = $record;

}

}

return $tree;

}

标签:sql,php,database

来源: https://codeday.me/bug/20191102/1991939.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值