2012-05-09 99 views
0

我有後續陣列:操縱陣列(生成表)的

陣列$eventos

Array (
    [0] => Array (
      [Evento] => Array (
        [id] => 1 
        [nome] => Event 1 
       ) 
      [Obreiro] => Array (
        [0] => Array (
          [id] => 2 
          [usuario_id] => 4 
          [nome] => Teste 
         ) 
        [1] => Array (
          [id] => 5 
          [usuario_id] => 8 
          [nome] => Teste 
         ) 
       ) 
     ) 
    [1] => Array (
      [Evento] => Array (
        [id] => 2 
        [nome] => Event 2 
       ) 

      [Obreiro] => Array (
        [0] => Array (
          [id] => 3 
          [usuario_id] => 6 
          [nome] => Teste 
         ) 
        [1] => Array 
         (
          [id] => 5 
          [usuario_id] => 7 
          [nome] => Teste 
         ) 
       ) 
     ) 
) 

和數組$obreiros

Array (
    [0] => Array (
      [Obreiro] => Array (
        [id] => 2 
        [usuario_id] => 4 
        [nome] => Foo 
       ) 
     ) 
    [1] => Array (
      [Obreiro] => Array (
        [id] => 5 
        [usuario_id] => 8 
        [nome] => Bar 
       ) 
     ) 
) 

我想這樣做: 對於每個$obreiros這是一個用戶,顯示是否參與該事件(在數組$evento[x]['Obreiro'][y]中定義,其中x和y是數字)。

樣品:

 | Event 1 | Event 2 | Event n 
-------------------------------------- 
Foo | x |   | x  
Bar | x | x | 
Foo 2 |   |   | x 

我怎樣才能做到這一點?

+1

我建議你重新安排你的陣列。你有ID。將它們用作數組鍵,而不是[0]/[1](除非它們可能在同一級別出現多次)。這不能回答你的問題,但你可能會更容易。 – Teson

+0

謝謝@ user247245,我沒有想到這一點。 –

回答

0

所做的工作與代碼:

foreach($obreiros as $kObreiro => $obreiro) { 
    foreach($eventos as $kEvento => $evento) { 
     $faltou = true; 

     if(isset($evento['Obreiro']) && is_array($evento['Obreiro']) && count($evento['Obreiro']) > 0) { 
      foreach($evento['Obreiro'] as $kEventoObreiro => $eventoObreiro) { 
       if($eventoObreiro['usuario_id'] == $obreiro['Usuario']['id']) { 
        $faltou = false; 
       } 
      } 
     } 

     if($faltou) { 
      echo'X'; 
     } else { 
      echo' '; 
     } 
    } 
    echo '<br />'; 
}