PHP parent_id 테이블을 트리 자료로 변환

Jmnote (토론 | 기여)님의 2020년 5월 25일 (월) 23:42 판 (새 문서: ==개요== {{DISPLAYTITLE:PHP parent_id 테이블을 트리 자료로 변환}} ;PHP parent_id 테이블을 트리 자료로 변환 <source lang='php' run> $table1 = [ ['id'=>1, 'va...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요

PHP parent_id 테이블을 트리 자료로 변환
$table1 = [
  ['id'=>1, 'value'=>'/'  , 'parent_id'=>0],
  ['id'=>2, 'value'=>'bin', 'parent_id'=>1],
  ['id'=>3, 'value'=>'etc', 'parent_id'=>1],
  ['id'=>4, 'value'=>'usr', 'parent_id'=>1],
  ['id'=>5, 'value'=>'bin', 'parent_id'=>4],
  ['id'=>6, 'value'=>'var', 'parent_id'=>1],
  ['id'=>7, 'value'=>'log', 'parent_id'=>6],
];

function buildTree($rows, $parent_id=0) {
  $branch = [];
  foreach($rows as $row) {
    if($row['parent_id'] == $parent_id) {
      $children = buildTree($rows, $row['id']);
      if($children) $row['children'] = $children;
      unset($row['parent_id']); // optional
      $branch[$row['id']] = $row;
    }
  }
  return $branch;
}

$tree = buildTree($table1);
print_r($tree);

2 같이 보기

3 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}