php 크기가 다른 다차원 배열의 자리 맞추는 방법 채택완료
찬돌이
4년 전
조회 2,093
</p>
<p>$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>";</p>
<p>
출력 결과가 아래 처럼 됩니다.
(apple)
(banana)
(x) (y) (z)
- ()는 table의 사각형으로 생각하세요
원하는 출력 결과는
(apple) ( ) ( )
(banana) ( ) ( )
(x) (y) (z)
즉 3 * 3으로 출력이 되면서 없는 자리에는 공백처리를 어떻게 할까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
4년 전
</p>
<p><?php</p>
<p>$arr=array(</p>
<p> "a"=>"apple",</p>
<p> "b"=>"banana",</p>
<p> "c"=>array("x","y","z")</p>
<p>);</p>
<p> </p>
<p>$arr_cnt = count($arr[max(array_keys($arr))]); // 가장큰배열길이 가져오기</p>
<p>
</p>
<p>echo "<table border=1>";</p>
<p>echo "<tr>";</p>
<p>foreach($arr as $key=>$val) {</p>
<p> </p>
<p> if(is_array($arr[$key])) {</p>
<p> foreach($val as $key1=>$val1) {</p>
<p> echo "<td> {$val1} </td>";</p>
<p> }</p>
<p> }else {</p>
<p> echo "<td> {$val} </td>";</p>
<p> </p>
<p> for($i=0;$i<$arr_cnt-1;$i++)</p>
<p> {</p>
<p> echo '<td></td>';</p>
<p> }</p>
<p> }</p>
<p> echo "</tr>";</p>
<p>}</p>
<p>echo "</table>";</p>
<p>?></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
찬돌이
4년 전
항상 빠르게 답변 해 주시는 Phillips 님 감사드립니다.
P
Phillips
4년 전
$arr_cnt = count($arr[max(array_keys($arr))]); // 가장큰배열길이 가져오기
를
$arr_cnt = count(max(array_values($arr))); // 가장큰배열길이 가져오기
이렇게바꿔주세요 잘못썻네요.ㅎ
를
$arr_cnt = count(max(array_values($arr))); // 가장큰배열길이 가져오기
이렇게바꿔주세요 잘못썻네요.ㅎ
댓글을 작성하려면 로그인이 필요합니다.
4년 전
$arr_cnt = count($arr[max(array_keys($arr))]); // 가장큰배열길이 가져오기로도 원하는 답을 얻었습니다.
다시 한번 감사드립니다.
</p>
<p>$arr=array(
"a"=>"apple",
"b"=>"banana",
"c"=>array("x","y","z"));
$arr_cnt = count($arr[max(array_keys($arr))]);</p>
<p>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>";</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인