php 크기가 다른 다차원 배열의 자리 맞추는 방법 채택완료

Copy
$arr=array(
    "a"=>"apple",
    "b"=>"banana",
    "c"=>array("x","y","z"));
echo "<table border=1>";
echo "<tr>";
foreach($arr as $key=>$val) {
    if(is_array($arr[$key])) {
        foreach($val as $key1=>$val1) {
            echo "<td> {$val1} </td>";
        }
    }else {
        echo "<td> {$val} </td>";
    }
    echo "</tr>";
}
echo "</table>";

 

출력 결과가 아래 처럼 됩니다.

(apple)

(banana)

(x)         (y)     (z)

- ()는 table의 사각형으로 생각하세요

 

원하는 출력 결과는

(apple)      ( )    ( )

(banana)   ( )    ( )

(x)          (y)    (z)

 

즉 3 * 3으로 출력이 되면서 없는 자리에는 공백처리를 어떻게 할까요?

답변 2개

채택된 답변
+20 포인트

 

Copy
<?php

$arr=array(

    "a"=>"apple",

    "b"=>"banana",

    "c"=>array("x","y","z")

);

    

$arr_cnt = count($arr[max(array_keys($arr))]); // 가장큰배열길이 가져오기


 

echo "<table border=1>";

echo "<tr>";

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

  

    if(is_array($arr[$key])) {

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

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

        }

    }else {

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

 

       for($i=0;$i<$arr_cnt-1;$i++)

       {

           echo '<td></td>';

       }

    }

    echo "</tr>";

}

echo "</table>";

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

답변에 대한 댓글 2개

항상 빠르게 답변 해 주시는 Phillips 님 감사드립니다.
$arr_cnt = count($arr[max(array_keys($arr))]); // 가장큰배열길이 가져오기

$arr_cnt = count(max(array_values($arr))); // 가장큰배열길이 가져오기
이렇게바꿔주세요 잘못썻네요.ㅎ

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

$arr_cnt = count($arr[max(array_keys($arr))]); // 가장큰배열길이 가져오기로도 원하는 답을 얻었습니다.

다시 한번 감사드립니다.
 

Copy
$arr=array(
    "a"=>"apple",
    "b"=>"banana",
    "c"=>array("x","y","z"));
$arr_cnt = count($arr[max(array_keys($arr))]);

echo "<table border=1>";
echo "<tr>";
foreach($arr as $key=>$val) {
    if(is_array($arr[$key])) {
        foreach($val as $key1=>$val1) {
            echo "<td> {$val1} </td>";
        }
    }else {
        echo "<td> {$val} </td>";
        for($i=0; $i<$arr_cnt-1; $i++) {
            echo "<td></td>";
        }
    }
    echo "</tr>";
}
echo "</table>";
로그인 후 평가할 수 있습니다

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

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

로그인
🐛 버그신고