v2.5.2
Giriş yap

Dynamic Group Table

hrnsykk
169 defa görüntülendi

Arkadaşlar aşağıdaki gibi bir array'ım var.
Haftalık toplam rezervasyonları gösteren şöyle bir tablo yapmak istiyorum ama bir türlü beceremedim.
PHP ile bunu nasıl yaparım, bu konuda bana yardımcı olurmusunuz ?

Hafta8298182982829838298482985
4200010
4302101
4420000
4510001
......
   array (
  42 => 
  array (
    82984 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82984',
      ),
    ),
  ),
  43 => 
  array (
    82983 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82983',
      ),
    ),
    82985 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82985',
      ),
    ),
    82982 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82982',
      ),
      1 => 
      array (
        'rentable_identity' => '82982',
      ),
    ),
  ),
  44 => 
  array (
    82981 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82981',
      ),
      1 => 
      array (
        'rentable_identity' => '82981',
      ),
    ),
  ),
  45 => 
  array (
    82981 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82981',
      ),
    ),
    82985 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82985',
      ),
    ),
  ),
  46 => 
  array (
    82984 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82984',
      ),
    ),
    82983 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82983',
      ),
    ),
    82981 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82981',
      ),
    ),
  ),
  47 => 
  array (
    82981 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82981',
      ),
    ),
  ),
  48 => 
  array (
    82985 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82985',
      ),
    ),
    82982 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82982',
      ),
    ),
    82984 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82984',
      ),
    ),
  ),
  49 => 
  array (
    82983 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82983',
      ),
      1 => 
      array (
        'rentable_identity' => '82983',
      ),
    ),
    82981 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82981',
      ),
    ),
    82982 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82982',
      ),
    ),
    82985 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82985',
      ),
    ),
    82984 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82984',
      ),
    ),
  ),
  50 => 
  array (
    82981 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82981',
      ),
    ),
    82985 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82985',
      ),
    ),
  ),
  51 => 
  array (
    82982 => 
    array (
      0 => 
      array (
        'rentable_identity' => '82982',
      ),
    ),
  ),
) bool(true)
Cevap yaz
Cevaplar (1)
trsherlock
395 gün önce
<table>
    <thead>
        <tr>
            <th>Hafta</th>
            <th>82981</th>
            <th>82982</th>
            <th>82983</th>
            <th>82984</th>
            <th>82985</th>
        </tr>
    </thead>
    <tbody>
<?php
$rez =  [
    43 => [
        82983 => [
            [
                'rentable_identity' => '82983'
            ]
        ],
            82985 => [
            [
                'rentable_identity' => '82985'
            ]
            ],
            82982 => [
            [
                'rentable_identity' => '82982'
            ],
            [
                'rentable_identity' => '82982'
            ]
        ]
            ],
            44 => [
        82983 => [
            [
                'rentable_identity' => '82983'
            ]
        ],
            82985 => [
            [
                'rentable_identity' => '82985'
            ]
            ],
            82982 => [
            [
                'rentable_identity' => '82982'
            ],
            [
                'rentable_identity' => '82982'
            ]
            
            ],
            82981 => [
            [
                'rentable_identity' => '82982'
            ],
            [
                'rentable_identity' => '82982'
            ],
            [
                'rentable_identity' => '82982'
            ]
            
        ]
    ]
];


// Boş odalar listeye eklenmemiş o yüzden sütunların eşleşmesi için aşağıdaki gibi bir diziye ihtiyaç var.
$cols = [
    82981,	82982,	82983,	82984,	82985
];


foreach ($rez as $key => $value) {
    ?>
        <tr>
        <td><?=$key; ?></td>
    <?php
    foreach($cols as $room) {
        $roomCount = isset($value[$room]) ? count($value[$room]): 0;
        ?>
        <td><?=$roomCount; ?></td>
    <?php
    }
    ?>
        </tr>
    <?php   
}
?>
</tbody>
</table>