recréer un tableau après modification d'une valeur

recréer un tableau après modification d'une valeur - PHP - Programmation

Marsh Posté le 08-09-2011 à 18:03:59    

Bonjour,
 
Après plusieurs heures de recherche je n'arrive pas à trouver comment je dois procéder pour recréer un tableau avec la modification d'une valeur.
 
Le but:
Pouvoir effectuer un calcul sur le temps en version seconde, sachant de je reçois au départ le temps en HMS
Dans un premier, j'essaye de créer un nouveau tableau $point avec le champs temps en secondes au départ du champs hms du tableau $courses.
Tout fonctionne jusqu'à la fin ou je n'arrive pas à récréer le tableau $point.
 
Je suis pas expert en php, je m'embrouille avec les tableaux malgré les infos que je lis sur le net et dans les bouquins  :??:  
 
d'avance merci
 
 

Citation :

<?php
 
//----Déclaration de la fonction compare (tri du plus grand vers le plus petit)----------
 function compare($x,$y){
  if ( $x[1] == $y[1]) {
   return 0;
  } else if ( $x[1] < $y[1] ){
   return 1;
  } else
  return -1;
 }
 
//----------affichage du tableau créé----début du test-------------------  
 
 
//---------création du tableau courses-------------
$courses = array( array('a', '1:10:00','A'),
      array('c', '1:07:00','B'),
      array('b', '2:20:00','C'));
 
 
echo "affichage du tableau courses créé <br />";
//----------affichage du tableau comme il vient d'être créé---------------
 
for ( $ligne = 0; $ligne < 3; $ligne++ ){
 for ( $colonne = 0; $colonne < 3; $colonne++ ){
  echo ' ' .$courses[$ligne][$colonne];  
 }
 echo "<br />";
 }
 
//--------tri du tableau $couses via fonction compare sur le champs temps du plus grand vers le plus petit---------
 usort ($courses, 'compare' );
 
//------replace le pointeur sur le début du tableau courses---------
 reset ($courses);
 
echo "------affichage control après----usort--compare----------<br />";
 
// ----affichage de control du tableau $ couses après tri------------------
for ( $ligne = 0; $ligne < 3; $ligne++ ){
 for ( $colonne = 0; $colonne < 3; $colonne++ ){
  echo ' ' .$courses[$ligne][$colonne];
 }
 echo "<br />";
}
   
echo "<br />-----traitement heures secondes---------- <br />";
 
 
//-----------traitement du temps hms en secondes---------------
 for ( $ligne = 0; $ligne < 3; $ligne++ ){
  for ( $colonne = 0; $colonne < 3; $colonne++ ){  
   
 $nom = $courses[$ligne][0];//selectionne le champs qui possède le champs hms de la table courses
 $temps_sec =  $courses[$ligne][1]; //selectionne le champs qui possède le champs hms de la table courses
 $point = $courses[$ligne][2];//selectionne le champs qui possède le champs point de la table courses
 
 $temps_sec = explode (":",  $temps_sec);
 while (list ($indice, $valeur) = each($temps_sec))
 
  $temps1=$temps_sec[0];
  $temps2=$temps_sec[1];
  $temps3=$temps_sec[2];
 
   //combien d'heures ?
    $hours =($temps1 * 3600);
 
   //combien de minutes ?  
    $min = (($temps2 * 60)) ;
 
  //combien de secondes
    $sec = $temps3  ;
   
 $seconde_total= $hours+$min+$sec;
 
        }
     
//----!!!! c'est à partir d'ici que je patauge !!!! j'arrive pas à créer un tableau point-------
 
 $point = array("nom"=> $nom, "temps"=> $seconde_total,"total"=> $point);
   echo $point[nom].$point[temps].$point[total]."<br>" ;  
   
   echo "<br />";
}  
echo "----control de fin de  traitement";
 
?>
 

Reply

Marsh Posté le 08-09-2011 à 18:03:59   

Reply

Marsh Posté le 10-09-2011 à 11:10:51    

si par tableau, tu parles de mise en forme sour forme de tableau, c'est du côté html qu'il faut aller voir (<table>, <th>, <tr>, <td>, <tbody>...)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-09-2011 à 12:43:19    

Bonjour Rufo,
 
Je me suis mal exprimé c'est de table que je dois parler et non de tableau.
 
pour exemple lorsque je fais le print_r de la table course j'ai ceci
Array
(
    [0] => Array
        (
            [0] => b
            [1] => 2:20:00
            [2] => B
        )
 
    [1] => Array
        (
            [0] => a
            [1] => 1:10:00
            [2] => A
        )
 
    [2] => Array
        (
            [0] => c
            [1] => 1:07:00
            [2] => C
        )
 
)
 
et je voudrais obtenir ceci
Array
(
    [0] => Array
        (
            [0] => b
            [1] => 8400
            [2] => B
        )
 
    [1] => Array
        (
            [0] => a
            [1] => 4200
            [2] => A
        )
 
    [2] => Array
        (
            [0] => c
            [1] => 4020
            [2] => C
        )
 
)
 

Reply

Marsh Posté le 12-09-2011 à 17:07:05    

Ben faut juste convertir tes heurs en secondes. Si ton tableau s'appelle $Tableau :

Code :
  1. foreach($Tableau as $i => $Tab)
  2. {
  3.    $ArrayHeures = explode(':', $Tab[1]);    
  4.    if (count($ArrayHeures) == 3)
  5.    {
  6.        $Tableau[$i][1] = $ArrayHeures[0] * 3600 + $ArrayHeures[1] * 60 + $ArrayHeures[2];
  7.    }
  8. }


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 13-09-2011 à 08:01:41    

merci pour ton aide rufo.
 
p

Reply

Marsh Posté le 13-09-2011 à 08:11:53    

merci pour ton aide rufo

Reply

Marsh Posté le 13-09-2011 à 13:38:51    

Ben si tu fais un update et ensuite un meta refresh ça doit fonctionner.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed