Je suis tombé par hazard sur ton code, et en fouillant dans php, j'ai trouvé les fonctions array_slice et array_merge. Ci-dessous le résultat.
Tout ce qui concerne temps et itérations n'est là que pour comparer le temps d'éxécution avec ton code.
L'idée est bonne mais pourquoi recopier la premiere partie du tableau dans temp1 ??
moi j'aurais fait un truc du style
pour insérer un élément à la ligne 10
- je ne touche pas au 10 premiers elements du tableau
- au 10 je sauvegarde l'élément 10 dans $tampon et j'insere $ligne
- de l'element 11 à la fin je copie $tampon dans $ligne, je sauvegarde l'élément i dans $tampon et j'insere $ligne a l'indice i
avantages:
pour insérer un élément a la position 5000 d'un tableau de 10000 on économise le traitement des 5000 premiers éléments
=> gain de temps
on utilise que 2 case mémoire
=> gain en mémoire
6 janv. 2003 à 18:30
Tout ce qui concerne temps et itérations n'est là que pour comparer le temps d'éxécution avec ton code.
<?php
function affiche($tableau)
{
for ($i = 0 ; $i < sizeof($tableau) ; $i++)
{
echo $tableau[$i] . "
";
}
echo "
";
}
function temps()
{
$heure = gettimeofday();
$tmp = ($heure['sec'].".".$heure['usec']);
return $tmp;
}
//-- debut programme --------------------
$test[0] = "a";
$test[1] = "b";
$test[2] = "c";
$test[3] = "d";
$test[4] = "e";
$test[5] = "f";
$nouveau = "HELLO";
$emplacement = 2;
$heureDeb = temps();
for ($i = 1 ; $i <= $iteration ; $i++)
{
$debut = array_slice($test, 0, $emplacement);
array_push($debut, $nouveau);
$fin = array_slice($test, $emplacement);
$resultat = array_merge($debut, $fin);
}
$heureFin = temps();
$php = $heureFin - $heureDeb;
affiche($test);
affiche($resultat);
echo "temps d'éxécution : " . $php . " secondes
";
?>
26 déc. 2002 à 01:02
Merci pour ta remarque Emilion
A+
;-)
Booth
22 déc. 2002 à 15:48
moi j'aurais fait un truc du style
pour insérer un élément à la ligne 10
- je ne touche pas au 10 premiers elements du tableau
- au 10 je sauvegarde l'élément 10 dans $tampon et j'insere $ligne
- de l'element 11 à la fin je copie $tampon dans $ligne, je sauvegarde l'élément i dans $tampon et j'insere $ligne a l'indice i
avantages:
pour insérer un élément a la position 5000 d'un tableau de 10000 on économise le traitement des 5000 premiers éléments
=> gain de temps
on utilise que 2 case mémoire
=> gain en mémoire
voila @+