Scripts

Dynamische Kolommen

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.?

dynamische-kolommen
<?php

# Author : Akif Gümüssu (Aquive Media) - [email protected]
# Contact: [email protected]
# Scriptname: Dynamische kolomen
# Script data: 14-08-2008
# Script version : v1.0
#
# Script om van een array met gegevens een tabel op te bouwen. Het script
# zorgt er voor dat de gegevens verspreid over een aantal kolommen onder elkaar
# worden weergegeven. Het aantal kolomen is zelf op te geven.
#

function makeColums ($inputArray, $columnCount) {

	// Geef aantal kolommen
	$cols = $columnCount;

	// Aantal tellen hoeveel er in de array zit
	$count = count($inputArray);

	// Modulo uitrekenen
	$modulo = $count % $cols;

	// Variabele maken met het aantal te vullen lege cellen in de array
	if ($modulo != 0) {
		$fill = $cols - $modulo;
	} else {
		$fill = 0;
	}

	// Een nbsp maken voor elke cel
	for ($i=0; $i<$fill; $i++) {
		$inputArray[] = '&nbsp';
	}

	// Aantal opnieuw tellen hoeveel er in de array zit
	$count = count($inputArray);

	// Uitrekenen hoeveel rijen er dienen te komen. Door aantal cellen te delen door aantal kolommen
	$rows = $count / $cols;

	// Teller instellen
	$temp = 0;

	// Array met nummers vullen welke van de data array gebuikt moeten worden voor elke regel van de tabel
	for ($i=0; $i<$cols; $i++) {
		$numb[] = $temp;
		$temp = $temp + $rows;
	}

	// Tabel opbouwen
	echo '<table border="1">';

	// Rijen opbouwen
	for ($i=0; $i<$rows; $i++) {
		echo '<tr>';
		// Cellen opbouwen
		for ($j=0; $j<$cols; $j++) {
			echo '<td>' . $inputArray[$numb[$j]] . '</td>';
			$numb[$j] = $numb[$j] + 1;
		}
		echo '</tr>';
	}
	echo '</table>';
}

// Array met gegevens. Dit kan bijvoorbeeld data zijn uit een sql query.
$test = array('Een', 'Twee', 'Drie', 'Vier', 'Vijf', 'Zes', 'Zeven', 'Acht', 'Negen', 'Tien', 'Elf', 'Twaalf', 'Dertien', 'Veertien', 'Vijftien', 'Zestien', 'Zeventien', 'Achtien');

// Functie gebruiken door een array er in te stoppen en het aantal kolommen te kiezen
makeColums($test, 3);

?>

Reacties

0
Nog geen reacties.