Combiner tables php [Résolu]

Signaler
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
16 mars 2017
-
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
16 mars 2017
-
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

1 réponse

Messages postés
29616
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 septembre 2020
337
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
)

)



Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
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
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
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
Messages postés
29616
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 septembre 2020
337 >
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
16 mars 2017

Oui ... tout est possible.... suffit de le rajouter dans le code.
Messages postés
29616
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 septembre 2020
337 >
Messages postés
29616
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 septembre 2020


$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>";
}
Messages postés
9
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
16 mars 2017
>
Messages postés
29616
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 septembre 2020

merci beaucoup pour la solution