Добавьте подкачку в большой массив в PHP - PullRequest
1 голос
/ 29 ноября 2011

У меня создается и отображается этот действительно большой массив, и сейчас он отображается в одном длинном списке.Мне нужно добавить несколько страниц в этот код ниже, и мне интересно, если это возможно. Я обычно работаю с наборами записей php / mysql, а не массивами. Спасибо.

<?php
   $invitation_codes = $mwx_settings['invitation_codes'];
   $idx=0;
?>
<?php foreach ($invitation_codes as $idx=>$invitation_code) : ?>


<tr>
         <td style="background-color:white;"><div align="center"><input type="text" name="invitation_codes[<?php echo $idx; ?>][invitation_code]"            value="<?php echo $invitation_code['invitation_code']; ?>" size="30" /></div></td>
<td style="background-color:#EEE;"><div align="center" style="color:red;font-weight:bold;"><?php echo $invitation_code['total_use_count']?$invitation_code['total_use_count']:'0'; ?></div></td>
         <td style="background-color:white;"><div align="center"><input type="text" name="invitation_codes[<?php echo $idx; ?>][max_use_count]"              value="<?php echo $invitation_code['max_use_count']; ?>" size="6" /></div></td>
         <td style="background-color:white;"><div align="center"><input type="text" name="invitation_codes[<?php echo $idx; ?>][invitation_code_expiry]"     value="<?php echo $invitation_code['invitation_code_expiry']; ?>" size="20" /></div></td>
         <td style="background-color:white;"><div align="center"><input type="text" name="invitation_codes[<?php echo $idx; ?>][assigned_product]"           value="<?php echo $invitation_code['assigned_product']; ?>" size="60" /></div></td>
         <td style="background-color:white;"><div align="center"><input type="text" name="invitation_codes[<?php echo $idx; ?>][product_lifetime_or_expiry]" value="<?php echo $invitation_code['product_lifetime_or_expiry']; ?>" size="25" /></div></td>
         <td style="background-color:white;"><div align="center"><input type="text" name="invitation_codes[<?php echo $idx; ?>][referred_by_id]"             value="<?php echo $invitation_code['referred_by_id']; ?>" size="10" /></div></td>
         <td style="background-color:white;">
            <div align="center">
               <input type="hidden" name="invitation_codes[<?php echo $idx; ?>][active]" value="0" /><input type="checkbox" name="invitation_codes[<?php echo $idx; ?>][active]" style="float:none;" value="1" <?php if ($invitation_code['active']) echo 'checked="checked"'; ?> />
            </div>
         </td>
         <td style="background-color:white;">
            <div align="center">
               <input type="hidden" name="invitation_codes[<?php echo $idx; ?>][delete]" value="0" /><input type="checkbox" name="invitation_codes[<?php echo $idx; ?>][delete]" style="float:none;" value="1" />
            </div>
         </td>
<?php  endforeach; ?>
</tr>

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

См. Этот модуль PEAR: пейджер

0 голосов
/ 22 июля 2014

Вот быстрый шаблон для разбиения массива на страницы, если кто-то еще обнаружит это и не хочет включать внешнюю библиотеку:

    // $items is the array to be paged
    $items = $this->get_my_array();

    // Set the page size you'd like
    $pageSize = 100;

    // Leave these
    $currentPage = 0;
    $pages = ceil(count($skus) / $pageSize);

    do
    {
        $start = $currentPage++ * $pageSize;
        $page_items = array_slice($items, $start, $pageSize);

        // Do stuff with $page_items
        foreach($page_items as $page_item)
        {
          $this->doStuff($page_item)
        }

    } while ($currentPage < $pages);
...