php 크기가 다른 다차원 배열의 자리 맞추는 방법
본문
$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
<?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>";
?>
$arr_cnt = count($arr[max(array_keys($arr))]); // 가장큰배열길이 가져오기로도 원하는 답을 얻었습니다.
다시 한번 감사드립니다.
$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>";
답변을 작성하시기 전에 로그인 해주세요.