Autor Zpráva
Jcas
Profil *
Když procházím pole a vyplňuji tabulku po řádcích, tak to je docela snadné, protože html kód se taky píše po řádcích. Ale jak na to, když chci ty prvky pole sázet do tabulky po sloupcích.
Např. 11 prvků pole do tří sloupců. V prvním budou 1-4, ve druhém 5-8 a ve třetím 9-11.

První krok. Vymyslel jsem něco takového, ale vůbec nevím jestli to bude fungovat.

<?php
function ZjistiPocet($nb) {
            $PocetSloupcu = 3; $i=1;
            $sloupec = $array();
            if(is_int($nb/$PocetSloupcu)) {                    //is_int vrácí true, je-li číslo celé
                while($i<$PocetSloupcu) {
                    $sloupec[$i] = $nb/$PocetSloupcu; $i++;
                    }
                }
                else {
                    while(!is_int($nb/$PocetSloupcu)) {    
                        $sloupec[$i] = ceil($nb/$PocetSloupcu);    //ceil zaokrouhlí nahoru = počet prvků v prvním sloupci
                        $nb = $nb-$sloupec[$i]; $PocetSloupcu--; $i++;
                        }
                }
            return $sloupec;
            }?>

2. Krok, na to se chystám teď. Pokud kód výše bude fungovat, tak bych měl vědět, kolik bude v každém sloupci prvků.
juriad
Profil
Inspiruj se (druhý příklad):
Nejčastější potíže s PHP (FAQ) » Výpis výsledků z databáze (nebo z jiného zdroje) do tabulky o více sloupcích
Jcas
Profil *
A sakra, zase jsem přišel o možnost to sám vymyslet. :)
Děkuju za odkaz a omlouvám se za zaplácnutí diskuse duplicitním dotazem. A prosím o smazání.

ps. Na zjištění kolik bude ve kterým sloupci prvků to je použitelné, ne?
juriad
Profil
Jcas:
Není, je to fuj.


<?php

function sloupec($prvku, $sloupcu, $sloupec) {
        $vyska = ceil($prvku / $sloupcu); # horni odhad

        $prebyva = $prvku % $sloupcu; # pocet v posledni radce (nebo 0)
        if ($prebyva > 0 && $sloupec >= $prebyva) { # pokud radek neni plny a sloupec je vetsi nez pocet zbylych prvku
                $vyska--; # zmensi o 1
        }

        return $vyska;
}

# testovací výstup:
for ($k = 1; $k < 4; $k++) { # pocet sloupcu
        for ($n = 0; $n < 20; $n++) { # pocet prvku
                for ($i = 0; $i < $k; $i++) { #sloupec
                        echo "v tabulce o $k sloupcich s $n prvky je v $i-tém sloupci " . sloupec($n, $k, $i) . " prvku\n";
                }
        }
        echo "\n";
}
Jcas
Profil *
Děkuju

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: