hehe kunne ikke dy mig :P
<?php
$fp = fopen( "DIN_CSV_FIL.csv", "r" );
$varer = array();
$header = array();
while ( $tmp = fgetcsv( $fp, 8192, ";" ) )
{
if ( count( $header ) == 0 )
{
$header = array_map( "strtolower", $tmp );
}
else
{
$varer[] = $tmp;
}
}
$header = array_combine( array_values( $header ), array_keys( $header ) );
$_SORTBY = ( !empty( $_GET['sortby'] ) ? $_GET['sortby'] : '' );
if ( $_SORTBY != '' )
{
if ( array_key_exists( $_SORTBY, $header ) )
{
$_SORTBY = $header[$_SORTBY];
}
else
{
$_SORTBY = 0;
}
}
else
{
$_SORTBY = 0;
}
$_REVERSE = ( !empty( $_GET['reverse'] ) ? 1 : 0 );
function cmp( $a, $b )
{
global $_REVERSE;
global $_SORTBY;
if ( $a[$_SORTBY] == $b[$_SORTBY] )
{
return 0;
}
if ( $_REVERSE )
{
return ( $a[$_SORTBY] > $b[$_SORTBY] ? -1 : 1 );
}
else
{
return ( $a[$_SORTBY] < $b[$_SORTBY] ? -1 : 1 );
}
}
usort( $varer, "cmp" );
function ufilter( $val )
{
global $_FIELD;
global $_FILTERVAL;
return ( $val[$_FIELD] == $_FILTERVAL );
}
if ( !empty( $_GET['filter'] ) )
{
list( $field, $value ) = explode( "=", $_GET['filter'] );
if ( array_key_exists( $field, $header ) )
{
$_FIELD = $header[$field];
$_FILTERVAL = $value;
$tmp = array_filter( $varer, "ufilter" );
$varer = $tmp;
}
}
echo "<table><tr>";
foreach ( $header as $key => $val )
{
echo "<th>$key</th>";
}
echo "</tr>";
foreach( $varer as $vare )
{
echo "<tr>";
foreach ( $vare as $felt )
{
echo "<td>$felt</td>";
}
echo "</tr>";
}
?>
Den modtager i URL'en variablene: sortby=feltnavn og reverse=1 (hvis sorteringen skal være omvendt), og filter=feltnavn=værdi altså:
http://dinhost.dk/script.php?sortby=lager&reverse=1&filter=varegruppe=2Viser alle varer i varegruppe 2 sorteret efter lagerantal i faldende orden