테스트 사이트 - 개발 중인 베타 버전입니다

php 배열 자릿수 마추기 채택완료

찬돌이 4년 전 조회 1,553

</p>

<p>function num_reverse() {

    if ( func_num_args()<1 ) return false;   // 함수 실행시 넘겨 받은 파라미터의 수가 적으면 리턴 처리

    $result = [];

    foreach ( func_get_args() as $key=>$num ) {  // 함수 실행시 넘겨받은 파라미터를 배열로 저장

        $num = (string)$num;  // 문자열 변환</p>

<p>        $len=strlen($num);   // 문자열 길이

        for ($i=0; $i<$len; $i++) {  

            $result[$key][] = $num[$i] * 10**($len-$i-1);  // 2차 배열로 저장

        }

    }

    return $result;

}

 </p>

<p>$arr = num_reverse(1234,234,34,4);</p>

<p>echo "<table border=1>";

echo "<tr><td>천의 자리</td><td>백의 자리</td><td>십의 자리</td><td>일의 자리</td></tr>";

foreach($arr as $key=>$val) {

echo "<tr align='center'>";

foreach($val as $key1=>$val1) {

echo "<td> {$val1}</td>";

}

echo "</tr>";

}

echo "</table>";


< 출력 결과 >
천의 자리 백의 자리 십의 자리 일의 자리
1000         200           30         4
200         30           4
30         4
4

< 원하는 출력 결과 >
천의 자리 백의 자리 십의 자리 일의 자리
1000         200           30         4
               200           30         4
                              30         4
                                          4
입니다

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
B
4년 전

구현 방법은 다양한데 질문의 코드를 그대로 사용하겠다면

여기에 약간의 코드를 더해주면 원하는 형태로 출력됩니다.

</p>

<p>echo "<table border=1>";

echo "<tr><td>천의 자리</td><td>백의 자리</td><td>십의 자리</td><td>일의 자리</td></tr>";

foreach($arr as $key=>$val) {

    echo "<tr align='center'>";

    $tds = array_fill(0, 4, '<td> </td>');

    foreach($val as $key1=>$val1) {

        $len = strlen($val1); // 1000>4, 200>3, 30>2, 4>1</p>

<p>        // if ( $len>4 ) continue; // 천 단위 초과 제외하려면 사용

        $tds[4-$len] = '<td>'.$val1.'</td>';

    }

    echo implode('', $tds); // implode($tds) 사용 가능하지만…

    echo "</tr>";

}

echo "</table>";</p>

<p>

 

+ array_fill()

- https://www.php.net/manual/en/function.array-fill.php

- http://docs.php.net/manual/kr/function.array-fill.php

 

+ implode()

- https://www.php.net/manual/en/function.implode.php

- http://docs.php.net/manual/kr/function.implode.php

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인