PHP Classes
elePHPant
Icontem

File: biblio_array

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Julien PACHET  >  Form Classic  >  biblio_array  >  Download  
File: biblio_array
Role: Auxiliary script
Content type: text/plain
Description: Functions to manipulate arrays
Class: Form Classic
Generate the HTML for forms with common inputs
Author: By
Last change:
Date: 11 years ago
Size: 5,826 bytes
 

Contents

Class file image Download
<?php

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FILE NAME : Biblio_array.inc.php //
// LANGUAGE : PHP //
// AUTHOR : Julien PACHET //
// EMAIL : j|u|l|i|e|n| [@] |p|a|c|h|e|t.c|o|m //
// VERSION : 1.11 //
// CREATION : 05/11/2003 //
// LICENCE : GNU/GPL //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// What the library does: //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// * Help manipulate arrays //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Changelog: //
// ---------- //
// Date Version Actions //
// ------------------------------------------------------------------------------------------------------ //
// 05/11/2003 1.0 Tested & Final version //
// 29/02/2004 1.1 array_2D_transpose //
// now can transpose associative arrays //
// 01/03/2004 1.11 optimizations //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Need to work: //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// * other file : none //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////
// Declaration //
// ----------- //
// array_1D($vect) //
// array_2D($array) //
// array_assoc_display($array) //
// array_2D_transpose($tab) //
// array_2D_sort($tab,$column_name,$sens="ASC") //
//////////////////////////////////////////////////////////////////////

function array_1D($vect) {
   
/**
    * array_1D() : return a displayable version of an 1D array
    *
    * @param $vect
    * @return
    */
   
if (count($vect)>0)
        return
"[ ".implode(",",$vect)." ]";
    else
        return
"[ ]";
}

function
array_2D($array) {
   
/**
    * array_2D() : return a displayable version of an 2D array
    *
    * @param $array
    * @return
    */
   
for ($res.=$i=0;$i<count($array);$i++)
       
$res.="\t".array_1D($array[$i])."<br>\n";
    return
"[ <br>\n$res ]<br>\n";
}

function
array_assoc_display($array) {
   
/**
    * array_assoc_display() : display an associated array
    *
    * @param $array
    * @return
    */
   
echo "<pre>\n";
   
print_r($array);
    echo
"</pre>\n";
}

function
array_2D_transpose($tab) {
   
/**
    * array_2D_transpose() : mathematical transpose of the 2D array
    *
    * @param $tab
    * @return
    */
   
$tab1=array_keys($tab);
   
$tab2=array_keys($tab[$tab1[0]]);
   
$l1=count($tab1);
   
$l2=count($tab2);
    for (
$x=0;$x<$l1;$x++)
        for (
$y=0;$y<$l2;$y++)
           
$res[$tab2[$y]][$tab1[$x]]=$tab[$tab1[$x]][$tab2[$y]];
    return
$res;
}

function
array_2D_sort($tab,$column_name,$sens="ASC") {
   
/**
    * array_2D_sort() : sort a 2D array by the $column_name $column
    *
    * @param $tab
    * @param $column_name
    * @param $sens
    * @return
    */
   
$res=array();
    while (
count($tab)>0) {
        for (
$i=0;$i<count($tab);$i++)
           
$column[$i]=$tab[$i][$column_name];
        for (
$pos=0,$i=0;$i<count($tab);$i++)
           
$pos=($sens=="ASC")?(($tab[$i][$column_name]<$tab[$pos][$column_name])?$i:$pos):(($tab[$i][$column_name]>$tab[$pos][$column_name])?$i:$pos);
       
$res[]=$tab[$pos];
       
array_splice($tab,$pos,1);
    }
    return
$res;
}
?>