Dynamische Kolommen

Door Tmist , 20 jaar geleden, 4.242x bekeken

Dit script maakt van een array met gegevens een tabel. Het script zorgt er voor dat de gegevens verspreid over een aantal kolommen onder elkaar worden weergegeven (ipv naast elkaar). Het aantal kolomen is zelf op te geven.

Voorbeeldje, in plaats van:

1 2 3
4 5 6
7 8 9

Word het dus:

1 4 7
2 5 8
3 6 9

Ik heb dit script in princiepe voor mezelf geschreven omdat ik het nodig had. Ik had natuurlijk al gezocht of iemand al zoiets gemaakt had maar ik kon het niet vinden. Ik deel het nu omdat wellicht iemand anders dit goed kan gebruiken zonder veel moeite.

Een tweede reden is dat ik graag feedback zou willen op de methodiek, kan dit beter/sneller/simpeler etc.?

Gesponsorde koppelingen

PHP script bestanden

  1. dynamische-kolommen

 

Er zijn 10 reacties op 'Dynamische kolommen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


20 jaar geleden
 
0 +1 -0 -1
Leuk maar wat ik me nou echt afvraag waarvoor heb je zoiets nodig?
Ed
Ed
20 jaar geleden
 
0 +1 -0 -1
Erg leuk bedacht, kan me nog niet direct een goede toepassing bedenken. Maar zag wel een uitdaging in je code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function make_colums($Input, $Columns) {
    
    // Calculate no. rows required
    $Rows = ceil(count($Input) / $Columns);
    
    // Save output to variable.
    $output =  '<table border="1">';
    
    // Start the loop for the rows
    for ($X=0; $X<$Rows; $X++) {
        $output .= '<tr>';
        // Start the loop for the cells
        for ($Y=0; $Y<$Columns; $Y++) {
            // Check if the array element existst
            if (isset($Input[$Y*$Rows + $X])) {
                $output .= '<td>'.$Input[$Y*$Rows + $X].'</td>';    
            } else {
                $output .= '<td>&nbsp</td>';
            }
        }
        $output .= '</tr>';
    }
    // Return the output
    return $output;
}


Stukje korter, zelfde effect.
Tmist
Tmist
20 jaar geleden
 
0 +1 -0 -1
Hmm het nut word blijkbaar in twijfel getrokken. Ik was een website aan het bouwen met gerechten erin. Deze liet ik 3 kolommen alfabetisch zien. Maar als dat van links naar rechts is, is het gewoon niet overzichtelijk. Meestal word zoiets dan onder elkaar gesorteerd op alfabet. Wel degelijk nuttig dus.
Ed
Ed
20 jaar geleden
 
0 +1 -0 -1
Nu dat je het zegt, alfabetisch lijstwerk is een prima toepassing. Daarom vroeg ik ook naar de toepassing, omdat ik me niet zo123 iets kon bedenken.


20 jaar geleden
 
0 +1 -0 -1
Sorry voor wanneer je de indruk kreeg dat ik de indruk wekte dat het niet nuttig is Tmist is namelijk niet de bedoeling want alles is nuttigs, in dit geval voor jou. Maar ik kon zelf helemaal geen toepassing bedenken waarvoor je dit bijvoorbeeld zou kunnen gebruiken ;)
Tmist
Tmist
20 jaar geleden
 
0 +1 -0 -1
Geeft niet jongens :)

Wat denk je dat ik vandaag tegen kom? Idd, soortgelijk script:

http://phphulp.jorendewit.nl/snippets/css/resultaat_in_kolommen.php
Tikkes C
Tikkes C
20 jaar geleden
 
0 +1 -0 -1
Ik heb wel een vraagje.
Waarom vul je je cellen eerst met nbsp?
Tmist
Tmist
20 jaar geleden
 
0 +1 -0 -1
Goeie vraag. Dit is puur om goed uit te komen met de cellen/rijen.

Stel je hebt een array met 9 items er in. Als je dit dan over 2 kolommen wilt verspreiden krijg je dus een kolom met 5 en een kolom met 4 items (5 + 4 = 9) Dan word er dus aan de array 1x een nbsp toegevoegd om goed uit te komen qua kolommen. Dat is dan dus 2 x 5 = 10.

Bij 7 items over 3 kolommen worden er 2x een nbsp toegevoegd. Want 3+3+1 = 7, dit word dan 3+3+3=9

Ik hoop dat het duidelijk is.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Tikkes C
Tikkes C
20 jaar geleden
 
0 +1 -0 -1
Helemaal! Bedankt.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. dynamische-kolommen

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.