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

Jmnote (토론 | 기여)님의 2020년 5월 25일 (월) 23:54 판 (→‎개요)

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']); // remove parent_id (optional)
      $branch[] = $row;
    }
  }
  return $branch;
}

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

2 같이 보기

3 참고

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