2012-12-15 5 views
4

다음 내가 표시하고자하는 배열의 예입니다 : 당신이 여러 팀을 가지고 볼 수 있습니다 그래서표시 다단계 연관 배열은

Array 
(
    [Media] => Array 
    (
     [2012-12-10] => Array 
     (
      [Mentor] => Evan Tobin 
      [Veteran Member] => James 
     ) 

     [2012-12-21] => Array 
     (
      [Mentor] => Evan Tobin 
     ) 
    ) 
    [Website] => Array 
    (
     [2012-12-10] => Array 
     (
      [Mentor] => Evan Tobin 
     ) 

     [2012-12-21] => Array 
     (
      [Mentor] => Evan Tobin 
     ) 
    ) 
) 

각 팀은 충족하고 여러 날짜가 매일 매일 다른 직업을 가진 사람들이 나옵니다. 나는 그것이 같은 표시에 대해 원하는이 표를 것 사용 : 나는 foreach는 문을 사용하려고했습니다

Media Team 
Role   || 2012-12-10 || 2012-12-21 
Mentor   || Evan Tobin || Evan Tobin 
Veteran Member || James || 

을하지만 너무 많이 최대한 빨리 더 얻을로로 가져옵니다. 어떤 도움이라도 대단히 감사합니다. 여기

+0

시도한 코드를 표시 할 수 있습니까? – Touki

+0

확실 http://pastebin.com/rCLubHtf –

답변

2

당신은 : 당신이 각 팀에 대해 별도의 테이블을 원하는 경우

<?php 
// [your array] 
$tabledata = array(
    'Media' => array(
     '2012-12-10' => array(
      'Mentor' => 'Evan Tobin', 
      'Veteran Member' => 'James' 
     ), 
     '2012-12-21' => array(
      'Mentor' => 'Evan Tobin' 
     ) 
    ), 
    'Website' => array(
     '2012-12-10' => array(
      'Mentor' => 'Evan Tobin' 
     ), 
     '2012-12-21' => array(
      'Mentor' => 'Evan Tobin' 
     ) 
    ) 
); 
// [/your array] 

// [the tables] 
echo '<table border="1">'; 
foreach($tabledata as $teamkey => $teamval){ 
    // [helper] 
    $dates = array(); 
    $roles = array(); 
    foreach($teamval as $datekey => $dateval) { 
     if (!in_array($datekey, $dates)) { 
      $dates[] = $datekey; 
     } 
     foreach($dateval as $rolekey=>$roleval) { 
      if (!in_array($rolekey, $roles)) { 
       $roles[] = $rolekey; 
      } 
     } 
    } 
    // [/helper] 

    // [team name] >> row 1 
    echo '<tr>'; 
    echo '<th align="left" colspan="'.(sizeof($dates)+1).'">'.$teamkey.' Team</th>'; 
    echo '</tr>'; 
    // [/team name] 

    // [role column and date column] >> row 2 
    echo '<tr>'; 
    echo '<td>Role</td>'; 
    foreach($dates as $date) { 
     echo '<td>'.$date.'</td>'; 
    } 
    echo '</tr>'; 
    // [/role column and date column] 

    // [role and team member for each date] >> row 3, 4, 5, ... n 
    foreach($roles as $role) { 
     echo '<tr>'; 
     echo '<td>'.$role.'</td>'; 
     foreach($dates as $date) { 
      echo '<td>'; 
      if (isset($teamval[$date][$role])) { 
       echo $teamval[$date][$role]; // team member name 
      } 
      else { 
       echo '&nbsp;'; // insert blank space for cross browser support 
      } 
      echo '</td>'; 
     } 
     echo '</tr>'; 
    } 
    // [/role and team member for each date] 
} 
echo '</table>'; 
// [/the tables] 

, 당신은 루프에 넣을 수 있습니다.

희망이 도움이됩니다.