메뉴 건너뛰기

프로그램언어

조회 수 1625 추천 수 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
번호 제목 날짜 조회 수
260 PHP error 메시지 출력 file 2015.04.14 20924
259 PHP EXCEL export시 시트 이름 지정하여 여러 시트에 데이터 쓰기 2017.03.06 18266
258 PHP http -> https 로 전환 2023.01.12 236
257 PHP http 를 https 로 전환(redirect), http->https 2019.02.19 2183
256 PHP Mcrypt 라이브러리를 활용한 암호화 시스템 2016.12.22 19972
255 PHP Notice: Use of undefined constant ... assumed ... 오류 2021.03.26 308
254 PHP SimpleHtmlDom Parser로 HTML 파싱하기 2023.01.12 220
253 PHP split()와 explode()의 차이점 2018.10.27 3536
252 PHP str_replace php 문자열치환 2023.01.12 197
251 PHP switch 문 file 2015.04.14 20993
250 php www 붙이기 2023.01.12 234
249 PHP XML 문서파싱 (SAX 방식 , DOM 방식) file 2018.10.27 3585
248 PHP ZIP 압축파일 만들기 file 2023.01.12 251
247 PHP 가변변수 $$ file 2019.02.19 1449
246 php 간단 심플한 달력만들기 file 2023.01.12 241
245 PHP 날짜 함수 2017.04.13 17673
244 PHP 날짜, 시간 관련 함수. date(), mktime() 2017.03.06 16707
243 PHP 날짜/시간 정리 2017.03.07 18629
242 php 내장함수 2017.03.07 17004
241 PHP 네이버블로그 원격 글쓰기 API 소스 file 2018.02.09 12465
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved