Combiner tables php [Résolu]

adika0123 9 Messages postés mercredi 31 mars 2010Date d'inscription 16 mars 2017 Dernière intervention - 16 mars 2017 à 00:17 - Dernière réponse : adika0123 9 Messages postés mercredi 31 mars 2010Date d'inscription 16 mars 2017 Dernière intervention
- 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 

6 réponses

Répondre au sujet
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 16 mars 2017 à 00:39
0
Utile
5
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 9 Messages postés mercredi 31 mars 2010Date d'inscription 16 mars 2017 Dernière intervention - 16 mars 2017 à 00:47
bonjour ,
merci pour votre réponse et pour cette solution
je teste avec mon code et je vous tiens informe
merci encore
adika0123 9 Messages postés mercredi 31 mars 2010Date d'inscription 16 mars 2017 Dernière intervention - 16 mars 2017 à 00:58
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 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention > adika0123 9 Messages postés mercredi 31 mars 2010Date d'inscription 16 mars 2017 Dernière intervention - 16 mars 2017 à 01:10
Oui ... tout est possible.... suffit de le rajouter dans le code.
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention > jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 16 mars 2017 à 01:16

$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 9 Messages postés mercredi 31 mars 2010Date d'inscription 16 mars 2017 Dernière intervention > jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 16 mars 2017 à 01:18
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.