Combiner tables php [Résolu]

Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Dernière intervention
16 mars 2017
- - Dernière réponse : adika0123
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Dernière intervention
16 mars 2017
- 16 mars 2017 à 01:18
Bonjour,
j ai des tabes avec le format des noms
d1s1-d1s2-d2s1-d2s2
avec le meme nombre des valeurs pour l ensemble des tables
comment je peux faire pour combiner les tables afin d obtenir ces resultats

d1s1 avec d2s1
d1s1 avec d2s2
d1s2 avec d2s1
d1s2 avec d2s2

ex
d1s1(1,2,3,4)
d1s2(6,7,8,9)
d2s1(10,11,12,13)
d2s2(14,15,16,17)

resultats
d1s1 avec d2s1
1-10
2-11
3-12
4-13

d1s1 avec d2s2
1-14
2-15
3-16
4-17

d1s2 avec d2s1
6-10
7-11
8-12
9-13

d1s2 avec d2s2

6-14
7-15
8-16
9-17

les tabes sont statiques ou sont recupe depuis une base de donnees,

Merci d avance
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

Quand tu dis "table" ... je suppose qu'en réalité tu veux parler d' ARRAY .....

Donc la réponse à ta question c'est .... avec des boucles ...

 <?php
//affichage des erreurs php si il y en a
error_reporting(E_ALL);
ini_set('display-errors','on');

/**
* Petite fonction de debug
*/
function debug($var,$title=""){
 echo '<br><b>'.$title.'</b><pre>';
 print_r($var);
 echo '</pre><br>';
}


$arr1 = array();
$arr1['d1s1'] = array(1,2,3,4);
$arr1['d1s2'] = array(6,7,8,9);

$arr2 = array();
$arr2['d2s1'] = array(10,11,12,13);
$arr2['d2s2'] = array(14,15,16,17);

$result = array();
foreach($arr1 as $k1=>$v1){
  foreach($arr2 as $k2=>$v2){
    foreach($v1 as $i=>$num1){
      $result[$k1.'-'.$k2][] = $num1 .'-'. $v2[$i];
    }
     
  }
}

debug($result);

?>


ce qui donne :

Array
(
[d1s1-d2s1] => Array
(
[0] => 1-10
[1] => 2-11
[2] => 3-12
[3] => 4-13
)

[d1s1-d2s2] => Array
(
[0] => 1-14
[1] => 2-15
[2] => 3-16
[3] => 4-17
)

[d1s2-d2s1] => Array
(
[0] => 6-10
[1] => 7-11
[2] => 8-12
[3] => 9-13
)

[d1s2-d2s2] => Array
(
[0] => 6-14
[1] => 7-15
[2] => 8-16
[3] => 9-17
)

)



adika0123
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Dernière intervention
16 mars 2017
-
bonjour ,
merci pour votre réponse et pour cette solution
je teste avec mon code et je vous tiens informe
merci encore
adika0123
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Dernière intervention
16 mars 2017
-
est ce qu il ya une possibilite de mettre chaque array sur html pour etre lisibl ainsi pour que je puisse ajouter d autres colonnes a chaque table pour faire qlq operation (+,-,*,/)

ex
d1s2-d2s2

6 | 14 | 20
7 | 15 | 21
8 | 16 | 24
9 | 17 | 26

merci
jordane45
Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
> adika0123
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Dernière intervention
16 mars 2017
-
Oui ... tout est possible.... suffit de le rajouter dans le code.
jordane45
Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
> jordane45
Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
-

$arr1 = array();
$arr1['d1s1'] = array(1,2,3,4);
$arr1['d1s2'] = array(6,7,8,9);

$arr2 = array();
$arr2['d2s1'] = array(10,11,12,13);
$arr2['d2s2'] = array(14,15,16,17);

$result = array();
foreach($arr1 as $k1=>$v1){
  foreach($arr2 as $k2=>$v2){
    foreach($v1 as $i=>$num1){
      $num2 = $v2[$i];
      $result[$k1.'-'.$k2][] = array($num1 .'-'. $num2 , ($num1+$num2) , ($num1-$num2),($num1*$num2),($num1/$num2) );
    }
     
  }
}

// Affichage en html :
foreach($result as $KEY=>$R){
 echo "<span><h2>".$KEY."</h2></span>";
 echo "<table style='border:1px solid black; border-collapse: collapse;'>";
   echo "<tr><th>combinaison</th><th>+</th><th>-</th><th>*</th><th>/</th></tr>";
   foreach($R as $k=>$val ){
    echo "<tr>";
    foreach($val as $col){
     echo "<td style='border:1px solid black; min-width:50px;' align='center'>$col</td>";
    }
    echo "</tr>"; 
  }
 
 echo "</table>";
}
adika0123
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Dernière intervention
16 mars 2017
> jordane45
Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
-
merci beaucoup pour la solution
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.