Comparer 2 colonnes se trouvant dans 2 lignes différentes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comparer 2 colonnes se trouvant dans 2 lignes différentes

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par rimbaut » 18 avr. 2010, 19:46

OK c'est ça. Il fallait donc créer 2 nouvelles variables que prennent la valeur cle et la valeur valeur.

Merci beaucoup et bonne soirée

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 19:20

Cadeau

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Agenda php</title> </head> <body style="background-color:#B7C1A2";> <h2 style="color:blue;">Un agenda en php</h2> <p>Il a été résolu le probème ,du moins nous l'espérons, en utilisant les tableaux de façon différente : <ol> <li>tableau indicié</li> <li>tableau associatif à plusieurs colonnes</li> </ol> </p> <h3 style="color:blue";> Avec le tableau indicié</h3> <?php $numCours = array(8, 5, 4, 1, 3, 2, 6, 7, 9); $debutCours = array(mktime(14,0,0,04,14,2010), mktime(14,0,0,04,12,2010), mktime(16,0,0,04,13,2010),mktime(8,0,0,04,16,2010), mktime(15,0,0,04,14,2010), mktime(16,0,0,04,15,2010), mktime(9,0,0,04,16,2010), mktime(14,0,0,04,16,2010), mktime(14,0,0,04,15,2010)); $finCours = array(mktime(12,0,0,04,16,2010), mktime(16,0,0,04,12,2010), mktime(18,0,0,04,13,2010), mktime(16,0,0,04,14,2010), mktime(17,0,0,04,14,2010), mktime(16,0,0,04,15,2010), mktime(18,0,0,04,15,2010), mktime(16,0,0,04,16,2010), mktime(11,0,0,04,16,2010)); //La fonction array_multisort ne fonctionnant pas, j'ai utilise la focntion sort() sort($numCours); sort($debutCours); sort($finCours); echo "<table width=80% border=1 bordercolor=blue> <tr><th>Date des Cours</th><th>Horaires des cours</th><th><small> Les chevauchements</th><tr><td>"; //tableau 1 echo "<table border=1 align=center> <tr><th>Cours</th><th>Date</th></tr>"; foreach($numCours as $maCle=>$maValeur) { echo "<tr><td align=center>".$maValeur."</td><td>".strftime("%d/%m/%Y",$debutCours[$maCle])."</td></tr>"; } echo "</table></td><td>"; //tableau 2 echo "<table border=1 align=center> <tr><th>Début du cours</th><th>Fin du cours</th></tr>"; foreach($debutCours as $maCle=>$maValeur) { echo "<tr><td align=center>".strftime("%H h",$debutCours[$maCle])."</td><td align=center>".strftime("%H h",$finCours[$maCle])."</td></tr>"; } echo "</table></td><td>"; //tableau diff echo "<table border=1 bordercolor=green align=center> <tr><th>Cours</th> <th>Date</th> <th>Fin cours précédent </th> <th>Debut cours suivant</th></tr>"; foreach($debutCours as $maCle=>$maValeur) { if ($numCours and $debutCours[$maCle] < (@$finCours[$maCle-1])) { echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$debutCours[$maCle])."</td><td align=center>".strftime("%H h",$finCours[$maCle-1])."</td><td align=center>".strftime("%H h",$debutCours[$maCle])."</td></tr>"; } } echo "</table></table>"; ?> <!----------------------------------------------------------------------------------------------------------------> <br /> <br /> <h3 style="color:blue;">Avec un tableau associatif à plusieurs colonnes</h3> <p>Nous pouvons faire cela, on utilisant un tableau associatif à plusieurs colonnes. Pour trier un tableau associatif, on utilise la fonction ksort() si l'on souhaite maintenir la correspondance entre les clés et les valeurs. Avec asort(), cette correspondance n'est pas respectée. Faites l'essai!!!</p> <?php $tableau_Cours=array(); $tableau_Cours['Cours_005']=array (mktime(14,0,0,04,15,2010), mktime(16,0,0,04,15,2010)); $tableau_Cours['Cours_003']=array (mktime(14,0,0,04,14,2010), mktime(16,0,0,04,14,2010)); $tableau_Cours['Cours_001']=array (mktime(14,0,0,04,12,2010), mktime(16,0,0,04,12,2010)); $tableau_Cours['Cours_002']=array (mktime(16,0,0,04,13,2010), mktime(18,0,0,04,13,2010)); $tableau_Cours['Cours_004']=array (mktime(15,0,0,04,14,2010), mktime(17,0,0,04,14,2010)); $tableau_Cours['Cours_008']=array (mktime(9,0,0,04,16,2010), mktime(12,0,0,04,16,2010)); $tableau_Cours['Cours_006']=array (mktime(16,0,0,04,15,2010), mktime(18,0,0,04,15,2010)); $tableau_Cours['Cours_007']=array (mktime(8,0,0,04,16,2010), mktime(11,0,0,04,16,2010)); $tableau_Cours['Cours_009']=array (mktime(14,0,0,04,16,2010), mktime(16,0,0,04,16,2010)); //ksort trie le tableau suivant les clés en maintenant la correspondance entre les clés et les valeurs. Cette fonction est importante pour les tableaux associatifs ksort($tableau_Cours); echo "<table width=80% border=1 bordercolor=blue> <tr><th>Date des Cours</th><th> Les chevauchements</th><tr><td>"; //tableau 1 echo "<table border=1 align=center> <tr><th>Cours</th><th>Date des cours</th><th>Début du cours</th><th>Fin du cours</th></tr>"; foreach($tableau_Cours as $maCle=>$maValeur) { echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[1])."</td></tr>"; } echo "</table></td><td>"; //Tableau diff echo "<table border=1 bordercolor=green align=center> <tr><th>Cours</th> <th>Date</th> <th>Fin cours précédent </th> <th>Debut cours suivant</th></tr>"; foreach($tableau_Cours as $maCle=>$maValeur) { $debut_Cours = $maValeur[0]; if ($debut_Cours < (@$fin_Cours)) echo "<tr><td align=center>".$anCle."</td><td align=center>".strftime("%d/%m/%Y",$anValeur[0])."</td><td align=center>".strftime("%H h",$anValeur[1])."</td><td align=center>".strftime("%H h",$maValeur[0])."</td></tr>"; $fin_Cours = $maValeur[1]; $anCle=$maCle; $anValeur=$maValeur; } echo "</table></table>"; ?> </body> </html>

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 19:17

Je crois savoir d'où ça vient ... c'est pas les mêmes données qui sont comparées et affichées.

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par rimbaut » 18 avr. 2010, 19:09

Outre le n° de cours et la date (qui fonctionne bien), je veux afficher dans 2 autres colonnes et respectivement l'heure de la fin du cours et l'heure du début du cours suivant. Donc l'heure de fin de cours si situe dans la colonne [1] mais sur la ligne du dessus et le début du cours sur la colonne [0] de la ligne du dessous.
Le problème est d'afficher dans la commande echo, l'heure de la fin du cours de la ligne qui précède début de cours.

Je te mets le code complet :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Agenda php</title>
</head>

<body style="background-color:#B7C1A2";>
<h2 style="color:blue;">Un agenda en php</h2>
<p>Il a été résolu le probème ,du moins nous l'espérons, en utilisant les tableaux de façon différente :
<ol>
   <li>tableau indicié</li>
   <li>tableau associatif à plusieurs colonnes</li>
</ol>
</p>

<h3 style="color:blue";> Avec le tableau indicié</h3>
<?php
$numCours = array(8, 5, 4, 1, 3, 2, 6, 7, 9);
$debutCours = array(mktime(14,0,0,04,14,2010), mktime(14,0,0,04,12,2010), mktime(16,0,0,04,13,2010),mktime(8,0,0,04,16,2010), mktime(15,0,0,04,14,2010), mktime(16,0,0,04,15,2010), mktime(9,0,0,04,16,2010), mktime(14,0,0,04,16,2010), mktime(14,0,0,04,15,2010));
$finCours = array(mktime(12,0,0,04,16,2010), mktime(16,0,0,04,12,2010), mktime(18,0,0,04,13,2010), mktime(16,0,0,04,14,2010), mktime(17,0,0,04,14,2010), mktime(16,0,0,04,15,2010), mktime(18,0,0,04,15,2010), mktime(16,0,0,04,16,2010), mktime(11,0,0,04,16,2010));

//La fonction array_multisort ne fonctionnant pas, j'ai utilise la focntion sort()
sort($numCours);
sort($debutCours);
sort($finCours);


echo "<table width=80% border=1 bordercolor=blue>
  <tr><th>Date des Cours</th><th>Horaires des cours</th><th><small>
  Les chevauchements</th><tr><td>"; 
  
//tableau 1
   echo "<table border=1 align=center>
     <tr><th>Cours</th><th>Date</th></tr>";
        foreach($numCours as $maCle=>$maValeur)
        {
           echo "<tr><td align=center>".$maValeur."</td><td>".strftime("%d/%m/%Y",$debutCours[$maCle])."</td></tr>";
        }
         echo "</table></td><td>";
		 
//tableau 2
   echo "<table border=1 align=center>
     <tr><th>Début du cours</th><th>Fin du cours</th></tr>";
        foreach($debutCours as $maCle=>$maValeur)
        {
        echo "<tr><td align=center>".strftime("%H h",$debutCours[$maCle])."</td><td align=center>".strftime("%H h",$finCours[$maCle])."</td></tr>";
        }
        echo "</table></td><td>";


//tableau diff
echo "<table border=1 bordercolor=green align=center>
    <tr><th>Cours</th>
    <th>Date</th>
	<th>Fin cours précédent </th>
	<th>Debut cours suivant</th></tr>";
 foreach($debutCours as $maCle=>$maValeur)
    {
       if ($numCours and $debutCours[$maCle] < (@$finCours[$maCle-1]))
	   {
	     
		  echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$debutCours[$maCle])."</td><td align=center>".strftime("%H h",$finCours[$maCle-1])."</td><td align=center>".strftime("%H h",$debutCours[$maCle])."</td></tr>";
       }
   
   }
echo "</table></table>";
?>

<!---------------------------------------------------------------------------------------------------------------->
<br />
<br />
<h3 style="color:blue;">Avec un tableau associatif à plusieurs colonnes</h3>

<p>Nous pouvons faire cela, on utilisant un tableau associatif à plusieurs colonnes. Pour trier un tableau associatif, on utilise la fonction ksort() si l'on souhaite maintenir la correspondance entre les clés et les valeurs. Avec asort(), cette correspondance n'est pas respectée. Faites l'essai!!!</p>

<?php

$tableau_Cours=array();
$tableau_Cours['Cours_005']=array (mktime(14,0,0,04,15,2010), mktime(16,0,0,04,15,2010));
$tableau_Cours['Cours_003']=array (mktime(14,0,0,04,14,2010), mktime(16,0,0,04,14,2010));
$tableau_Cours['Cours_001']=array (mktime(14,0,0,04,12,2010), mktime(16,0,0,04,12,2010));
$tableau_Cours['Cours_002']=array (mktime(16,0,0,04,13,2010), mktime(18,0,0,04,13,2010));
$tableau_Cours['Cours_004']=array (mktime(15,0,0,04,14,2010), mktime(17,0,0,04,14,2010));
$tableau_Cours['Cours_008']=array (mktime(9,0,0,04,16,2010), mktime(12,0,0,04,16,2010));
$tableau_Cours['Cours_006']=array (mktime(16,0,0,04,15,2010), mktime(18,0,0,04,15,2010));
$tableau_Cours['Cours_007']=array (mktime(8,0,0,04,16,2010), mktime(11,0,0,04,16,2010));
$tableau_Cours['Cours_009']=array (mktime(14,0,0,04,16,2010), mktime(16,0,0,04,16,2010));

//ksort trie le tableau suivant les clés en maintenant la correspondance entre les clés et les valeurs. Cette fonction est importante pour les tableaux associatifs
ksort($tableau_Cours);


echo "<table width=80% border=1 bordercolor=blue>
  <tr><th>Date des Cours</th><th>
  Les chevauchements</th><tr><td>";

//tableau 1
   echo "<table border=1 align=center>
     <tr><th>Cours</th><th>Date des cours</th><th>Début du cours</th><th>Fin du cours</th></tr>";
           foreach($tableau_Cours as $maCle=>$maValeur)
        {
            echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[1])."</td></tr>";
        }
         echo "</table></td><td>";
		 
//Tableau diff
   echo "<table border=1 bordercolor=green align=center>
    <tr><th>Cours</th>
    <th>Date</th>
	<th>Fin cours précédent </th>
	<th>Debut cours suivant</th></tr>";
	

 foreach($tableau_Cours as $maCle=>$maValeur)
    {
	   $debut_Cours = $maValeur[0];
          if ($debut_Cours < (@$fin_Cours))
		  echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[1])."</td><td align=center>".strftime("%H h",$maValeur[0])."</td></tr>";
		  $fin_Cours = $maValeur[1];
	}
	    
echo "</table></table>";
 
  
?>
</body>
</html>
Et merci encore pour ta patience car je ne vois pas comment accéder à cette ligne.

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 19:01

Euh ... c'est quoi le problème 8-|

Peux-tu remettre ton code en entier stp (pour que je puisse le tester chez moi) et expliquer le problème réel (il me semblait que la solution était trouvée ...)

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par rimbaut » 18 avr. 2010, 18:55

ok mais j'ai toujours le problème de la comparaison des horaires. Comment puis je accéder à la ligne du dessus de la colonne fin de cours et insérer cela dans l'instruction echo

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 18:38

1) C'est ma logique ... tu compares la fin de la dernière ligne avec le début de la première. C'est cette technique qui m'est venue en premier à l'esprit.
2) Ce n'est pas grave. C'est une Notice, ça n'empêche en rien au code de fonctionner. C'est juste parce que pour le 1er passage de boucle, la deuxième variable n'existe pas encore. Donc soit tu modifies les propriétés de ton serveur, soit tu mets à la place de

Code : Tout sélectionner

foreach($tableau_Cours as $maCle=>$maValeur) { $debut_Cours = $maValeur[0]; if ($debut_Cours < $fin_Cours) echo "<tr><td>".$maCle."</td><td>".strftime("%d/%m/%Y",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[1])."</td></tr>"; $fin_Cours = $maValeur[1]; }

Ca :

Code : Tout sélectionner

foreach($tableau_Cours as $maCle=>$maValeur) { $debut_Cours = $maValeur[0]; if (isset($debut_Cours) && isset($fin_Cours)) { if ($debut_Cours < $fin_Cours) echo "<tr><td>".$maCle."</td><td>".strftime("%d/%m/%Y",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[1])."</td></tr>"; $fin_Cours = $maValeur[1]; } }

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par rimbaut » 18 avr. 2010, 18:31

Pardon, le code indiqué fonctionne imparfaitement car s'il affiche bien les numéros de cours qui chevauchent et la date sans erreur. Ce n'est pas le cas pour les horaires de fin de cours.
Le code mentionne l'heure de fin de cours d'une même clé. A savoir :
cours n°4 date : 14/04/2010 début cours :15h fin cours : 17h.
Ces horaires correspondent effectivement à la clé cours n°4.

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par rimbaut » 18 avr. 2010, 18:25

ok, je n'avais pas fait cas. Ca fonctionne mais 2 petites questions et je te laisse tranquille :

1°) Peux tu m'expliquer pour quoi il faut mettre l'expression $fin_Cours = $maValeur[1] à la fin de la condition. Si je la mets au dessous de $debut_Cours=$maValeur[0], ça ne marche pas.

2°) J'ai le message comme quoi ma variable fin_Cours ne serait pas définie. Voici le message :
Notice: Undefined variable: fin_Cours in C:\wamp\www\Tableaux\AgendaTabIndicie.php on line 116
La ligne 116 est la ligne du if.

et voici le code qui fonctionne d'ailleurs :
//Tableau diff
   echo "<table border=1 bordercolor=green align=center>
    <tr><th>Cours</th>
    <th>Date</th>
	<th>Fin cours précédent </th>
	<th>Debut cours suivant</th></tr>";
 foreach($tableau_Cours as $maCle=>$maValeur)
    {
	   $debut_Cours = $maValeur[0];
          if ($debut_Cours < $fin_Cours)
		  echo "<tr><td>".$maCle."</td><td>".strftime("%d/%m/%Y",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[1])."</td></tr>";
		  $fin_Cours = $maValeur[1];
	}
	     
echo "</table></table>";

Merci pour ta compétence

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 17:44

Regarde mes deux derniers posts ils te donnaient la solution du chauvauchement.

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par rimbaut » 18 avr. 2010, 17:34

Merci pour ton code devlopnet. Ca fonctionne. Reste un point en suspens. Pour un même jour, je veux comparer la fin du cours précédent avec le début du cours suivant afin de vérifier qu'il n'y a pas de chevauchement. J'ai fait cela avec un tableau indicié, mais je ne vois pas comment faire avec un tableau associatif sachant que les lignes à comparer sont différentes, fin de cours étant sur la ligne -1.

Voici le code qui fait la différence entre les lignes :
<?php

$tableau_Cours=array();
$tableau_Cours['Cours_003']=array (mktime(14,0,0,04,14,2010), mktime(16,0,0,04,14,2010));
$tableau_Cours['Cours_001']=array (mktime(14,0,0,04,12,2010), mktime(16,0,0,04,12,2010));
$tableau_Cours['Cours_002']=array (mktime(16,0,0,04,13,2010), mktime(18,0,0,04,13,2010));
$tableau_Cours['Cours_004']=array (mktime(15,0,0,04,14,2010), mktime(17,0,0,04,14,2010));
$tableau_Cours['Cours_008']=array (mktime(9,0,0,04,16,2010), mktime(11,0,0,04,16,2010));
$tableau_Cours['Cours_005']=array (mktime(14,0,0,04,15,2010), mktime(16,0,0,04,15,2010));
$tableau_Cours['Cours_006']=array (mktime(16,0,0,04,15,2010), mktime(18,0,0,04,15,2010));
$tableau_Cours['Cours_007']=array (mktime(16,0,0,04,16,2010), mktime(12,0,0,04,16,2010));
$tableau_Cours['Cours_009']=array (mktime(14,0,0,04,16,2010), mktime(16,0,0,04,16,2010));

//ksort trie le tableau suivant les clés en maintenant la correspondance entre les clés et les valeurs. Cette fonction est importante pour les tableaux associatifs
ksort($tableau_Cours);


echo "<table width=80% border=1 bordercolor=blue>
  <tr><th>Date des Cours</th><th>
  Les chevauchements</th><tr><td>";

//tableau 1
   echo "<table border=1 align=center>
     <tr><th>Cours</th><th>Date des cours</th><th>Début du cours</th><th>Fin du cours</th></tr>";
           foreach($tableau_Cours as $maCle=>$maValeur)
        {
            echo "<tr><td align=center>".$maCle."</td><td>".strftime("%d/%m/%Y",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[0])."</td><td>".strftime("%H h",$maValeur[1])."</td></tr>";
        }
         echo "</table></td><td>";
		 
//Tableau diff
   echo "<table border=1 bordercolor=green align=center>
    <tr><th>Cours</th>
    <th>Date</th>
	<th>Fin cours précédent </th>
	<th>Debut cours suivant</th></tr>";
 foreach($tableau_Cours as $maCle=>$maValeur)
    {
       if ($maValeur[0] < $maValeur[1])
	   {
	     
		  echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[1])."</td><td align=center>".strftime("%H h",$maValeur[0])."</td></tr>";
       }
   
   }
echo "</table></table>";
  

?>
Merci pour ton aide précieuse

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 16:27

Encore mieux (pour la date seulement):

foreach($tableau_Cours as $maCle=>$maValeur) {

$debut_cours = date("Ymd",$maValeur[0]);
if ($debut_cours < $fin_cours) echo "Chauvauchement $maCle";
$fin_cours = date("Ymd",$maValeur[1]);


}

Ou (pour la date et l'heure, attention tu as des erreurs dans ton tableau) :
foreach($tableau_Cours as $maCle=>$maValeur) {

$debut_cours = $maValeur[0];
if ($debut_cours < $fin_cours) echo "Chauvauchement $maCle";
$fin_cours = $maValeur[1];


}

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 16:24

1ere solution :

foreach($tableau_Cours as $maCle=>$maValeur) {

$debut_cours = strftime("%d/%m/%Y",$maValeur[0]);
if ($debut_cours == $fin_cours) echo "Chauvauchement $maCle";
$fin_cours = strftime("%d/%m/%Y",$maValeur[1]);


}

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 16:16

Moi je te propose ça (essaie pour voir) :

Code : Tout sélectionner

<?php $tableau_Cours=array(); $tableau_Cours['Cours_001']=array (mktime(14,0,0,04,14,2010), mktime(12,0,0,04,16,2010)); $tableau_Cours['Cours_002']=array (mktime(14,0,0,04,12,2010), mktime(16,0,0,04,12,2010)); $tableau_Cours['Cours_003']=array (mktime(16,0,0,04,13,2010), mktime(18,0,0,04,13,2010)); $tableau_Cours['Cours_004']=array (mktime(8,0,0,04,16,2010), mktime(16,0,0,04,14,2010)); $tableau_Cours['Cours_005']=array (mktime(15,0,0,04,14,2010), mktime(17,0,0,04,14,2010)); $tableau_Cours['Cours_006']=array (mktime(16,0,0,04,15,2010), mktime(16,0,0,04,15,2010)); $tableau_Cours['Cours_007']=array (mktime(9,0,0,04,16,2010), mktime(18,0,0,04,15,2010)); $tableau_Cours['Cours_008']=array (mktime(14,0,0,04,16,2010), mktime(16,0,0,04,16,2010)); $tableau_Cours['Cours_009']=array (mktime(14,0,0,04,15,2010), mktime(11,0,0,04,16,2010)); asort($tableau_Cours); echo "<table width=80% border=1 bordercolor=blue> <tr><th>Date des Cours</th><th>Horaires des cours</th><th><small> Les chevauchements</th><tr><td>"; //tableau 1 echo "<table border=1 align=center> <tr><th>Cours</th><th>Date début</th><th>Date fin</th></tr>"; foreach($tableau_Cours as $maCle=>$maValeur) { echo "<tr><td align=center>".$maCle."</td><td>".strftime("%d/%m/%Y",$maValeur[0])."</td><td>".strftime("%d/%m/%Y",$maValeur[1])."</td></tr>"; } echo "</table></td><td>"; ?>

Re: Comparer 2 colonnes se trouvant dans 2 lignes différentes

par devlop78 » 18 avr. 2010, 16:12

Pourquoi trier ton tableau alors qu'il est déjà dans l'ordre.
En utilisant ksort() j'obtiens

Cours_001 01/01/1970
Cours_002 01/01/1970
Cours_003 01/01/1970
Cours_004 01/01/1970
Cours_005 01/01/1970

etc.

En utilisant asort() j'obtiens :

Cours_002 01/01/1970
Cours_003 01/01/1970
Cours_001 01/01/1970
Cours_005 01/01/1970
Cours_009 01/01/1970