Programmation et Bases de données
fonctions PHP et tableaux
<?php
//fonctions utiles pour les tableaux en PHP
//cours LPA3 P. TRAU
function dire_bonjour() //aucun argument
{
echo "<P>bonjour</P>";
}
function dire_trois_fois_bonjour()
{
for($i=0;$i<3;$i++)
{
echo "<P>bonjour</P>";
}
}
function dire_n_fois_bonjour($nb) //$nb est le nom local de l'argument
{
for($i=0;$i<$nb;$i++)
{
echo "<P>bonjour</P>";
}
}
function afficher_tableau($tab,$nb) //2 arguments
{
echo "<TABLE border=1> <CAPTION><TH>indice</TH>";
echo "<TH>note</TH></CAPTION>\n";
for($i=0;$i<$nb;$i++)
{
echo "<TR><TD align="center">$i</TD><TD align="center">$tab[$i]</TD></TR>\n";
}
echo "</TABLE>";
}
function moyenne($tab,$nb) //2 arguments et retourne la moyenne
{
$som=$tab[0];
for($i=1;$i<$nb;$i++)
{
$som=$som+$tab[$i];
}
$m=$som/$nb;
return $m;
}
function cree_tableau($nb) //remplit le tableau de valeurs aleatoires
{
for($i=0;$i<$nb;$i++)
{
$n[$i]=mt_rand(1,2000)/100;
}
return $n;
}
//cherche le plus petit, mais uniquement a partir de l'indice apd
function plus_petit($tab,$nb,$apd=0)
{
$pp=$apd;
for($i=$apd+1;$i<$nb;$i++)
{
if($tab[$i]<$tab[$pp])$pp=$i;
}
return $pp; //on rend l'indice du plus petit
}
//echange deux valeurs du tableau (on connait leur indice)
function echange(&$tab,$pos1,$pos2)
{
$tmp=$tab[$pos1];$tab[$pos1]=$tab[$pos2];$tab[$pos2]=$tmp;
}
//trier un tableau : nb fois chercher le plus petit et le deplacer
function trie_tableau(&$tab,$nb)
{
for($i=0;$i<$nb-1;$i++)
{
$pp=plus_petit($tab,$nb,$i);
//echo "<P>pp et i $pp $i</P>";
if($pp!=$i)echange($tab,$i,$pp);
}
}
?>
=======================================================================================
fichier de test utilisant ces fonctions
=======================================================================================
<?php
include "fonctions.inc";
?>
<html>
<head>
<title>test des fonctions php</title>
</head>
<body bgcolor="#ffffa0">
<H1 align="center">test PHP</H1>
<?php
$n=1;
dire_n_fois_bonjour($n);
?>
<P>ah la la que vais-je marquer là</P>
<?php
$nb=$_GET["nb"];
$notes=cree_tableau($nb);
afficher_tableau($notes,$nb);
$moy=moyenne($notes,$nb);
echo "<P> la moyenne est $moy</P>\n";
trier($notes,$nb);
afficher_tableau($notes,$nb);
?>
</body>
</html>
P. TRAU,
ULP-IPST, 2006