메뉴 건너뛰기

프로그램언어

조회 수 1946 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

배열을 테이블로 만들 필요가 생겨 작성했습니다.
rowspan을 적용한 테이블로 만드는 소스 입니다.

만약 아래와 같은 배열이 있다면

$arr = [
 'a' => [
  'b' => 1,
  'c' => 1
 ],
];

아래와 같은 테이블로 만듭니다.

<table>
<tr>
<td rowspan="2">a</td><td>b</td><td>1</td>
</tr>
<tr>
<td>c</td><td>1</td>
</tr>
</table>


class Maketable
{
 
    protected $CI;
 
    public function __construct()
    {
        $this->CI =& get_instance();
    }
 
    public function make_table($data, $convert_fg = true)
    {
        $str = '';
        foreach ($data as $key => $value) {
            $this->make_tr($key, $value, $convert_fg, $str);
        }
        return $str;
    }
 
    public function cnt_depth($data, &$cnt = 0)
    {
        if (is_array($data)) {
            foreach ($data as $value) {
                $this->cnt_depth($value, $cnt);
            }
        } else {
            $cnt++;
        }
        return $cnt;
    }
 
    public function make_tr($key, $data, $convert_fg, &$str = '', &$first = false)
    {
        if (is_array($data)) {
            $head_tr = ($first === true) ? '' : '<TR>';
            $rowspan = $this->cnt_depth($data);
            $key_str = ($convert_fg === true) ? $this->CI->lang->line($key) : $key;
            $str .= $head_tr . "<TD rowspan=\"{$rowspan}\">{$key_str}</TD>";
            $first = true;
            foreach ($data as $key => $value) {
                $this->make_tr($key, $value, $convert_fg, $str, $first);
            }
            $str .= "</TR>";
        } else {
            $head_tr = ($first === true) ? '' : '<TR>';
            $first = false;
            $key_str = ($convert_fg === true) ? $this->CI->lang->line($key) : $key;
            $str .= $head_tr . "<TD>{$key_str}</TD><TD>{$data}</TD></TR>";
        }
        return $str;
    }
}


List of Articles
번호 제목 날짜 조회 수
220 내 계정 용량 체크 2019.01.08 1644
219 사업자번호로 사업자 종류알기 2019.01.08 1276
218 디비내용을 엑셀 파일로 다운로드 시키는 방법 2019.01.08 1506
217 php/asp에서 가상번호 부여와 가상번호를 거꾸로 적용 2019.01.08 1755
216 php에서 체크박스 선택한 것 보여주기 file 2019.01.08 1875
» 배열을 테이블로 만들기 2019.01.08 1946
214 include 와 namespace 2019.01.08 1149
213 파일 2019.01.08 1539
212 디렉토리의 제어 2019.01.08 1287
211 PHP 문자열에서 검색어를 기준으로 앞뒤로 일정 길이만큼 자르기 2018.10.27 3591
210 PHP 랜덤확률 구하기 2018.10.27 4841
209 PHP 소켓을 이용하여 URL의 응답결과를 문자열로 받기 2018.10.27 3556
208 PHP 랜덤 문자열 생성 2018.10.27 4177
207 PHP XML 문서파싱 (SAX 방식 , DOM 방식) file 2018.10.27 3638
206 PHP split()와 explode()의 차이점 2018.10.27 3588
205 PHP eregi가 빠를까, strpos가 빠를까? 2018.10.27 4183
204 PHP 확장 모듈을 이용한 C 라이브러리 사용 2018.10.27 3858
203 자바스크립트 이스케이프 문자열을 PHP로 디코딩 하기 2018.10.27 3341
202 이미지 땡겨와서 출력하기 2018.09.28 5363
201 DB 연동 4단 셀렉트 박스 2018.09.28 6372
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved