2014-11-15 4 views
1

도움이 필요 테이블에 적용하기로 myscripf 동적 배열을 생성하고, 출력은 다음과 같은 수 있습니다 :어떻게 동적 배열을 분할하고

Array 
(
    [0] => A, B, C, D 
    [1] => 15,20,24,19 
    [2] => X,Y,Z,W 
) 

또는

Array 
(
    [0] => A, B, C, D 
    [1] => 15,20,24,19 
) 

언젠가는 2 주 인덱스 또는 더.

는 HTML 테이블에 적용하는 방법, 그래서 결과는 다음과 같이 될 것입니다 : 필드는 주요 지수의 추적 번호는

------------------ 
Field 1 | Field 2 | 
------------------ 
A  | 15  | 
------------------ 
B  | 20  | 
------------------ 
C  | 24  | 
------------------ 
D  | 19  | 
------------------ 

있는 곳. 그들은 구분 된 문자열을 쉼표로하는 경우 도움을

큰 덕분에 :)

답변

0

, 당신은 그 첫번째지도 폭발 할 필요가있다. 그런 다음 루프를 반복하기 쉽도록 그룹화하고 줄을 정리할 수 있습니다. 예 :

$array = ['A,B,C,D', '15,20,24,19', 'X,Y,Z,W']; 
// explode comma delimited 
$pieces = array_map(function($piece){ 
    return explode(',', $piece); 
}, $array); 
// group them 
$group = array(); $i = 0; 
while(true) { 
    foreach ($pieces as &$piece) { 
     $group[$i][] = array_shift($piece); 
    } 
    $i++; 
    $last = end($pieces); 
    if(empty($last)) break; 
} 
// then just echo them in a table 
echo '<table cellpadding="10">'; 
echo '<tr>'; 
for($x = 1, $size = count($array); $x <= $size; $x++) echo '<td>Field ' . $x . '</td>'; 
echo '</tr>'; 
foreach ($group as $value) { 
    echo '<tr>'; 
    foreach($value as $v) { 
     echo '<td>' . $v . '</td>'; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 

Sample Out

+0

하나 개의 작은 것은, 당신의'for' 행동에 같은 변화'배열 $ array'의 길이를 계산하십시오. 이 값을'variable'에 넣고 재사용하는 것이 더 좋습니다. – RST

+0

@RST 아무 문제가 없으므로 어쨌든 수정하기 쉽습니다. – Ghost

0

문자열의 각 부분 배열에 explode()를 호출 한 후에는 더 준비를 실행하는 데 필요한 단지 array_column()를 사용하여 열 데이터에 액세스하지 않습니다.

코드 : (Demo)

$array=['A, B, C, D', '15,20,24,19', 'X,Y,Z,W']; // differing delimiters: comma vs comma-space 
$array=array_map(function($s){return preg_split('/, ?/',$s);},$array); 

echo "<table>"; 
    echo "<tr>"; 
     for($x=1,$column_count=sizeof($array); $x<=$column_count; ++$x){ 
      echo "<th>Field$x</th>"; 
     } 
    echo "</tr>"; 
    foreach($array[0] as $i=>$v){ 
     echo "<tr><td>",implode("</td><td>",array_column($array,$i)),"</td></tr>"; 
    } 
echo "</table>"; 

출력 :

<table> 
    <tr> 
     <th>Field1</th><th>Field2</th><th>Field3</th> 
    </tr> 
    <tr> 
     <td>A</td><td>15</td><td>X</td> 
    </tr> 
    <tr> 
     <td>B</td><td>20</td><td>Y</td> 
    </tr> 
    <tr> 
     <td>C</td><td>24</td><td>Z</td> 
    </tr> 
    <tr> 
     <td>D</td><td>19</td><td>W</td> 
    </tr> 
</table> 
관련 문제