Bonjour,
je souhaite concaténer les données de plusieurs tableaux construits sur la même base, en un seul supertableau à 2 dimensions.
Ça c'est facile (enfin, je veux dire, j'y suis parvenu).
Voici un code PHP qui fait ça, en exemple.
Donc dans cet exemple, j'ai le $tableau0 (1 ligne, 2 colonnes) et le $tableau1 (1 ligne, 2 colonnes) , que j'assemble en un seul $superTableau (2 lignes, 2 colonnes).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <?php $tableau0 = [ "lat" => "latte0", "lon" => "lelong0", ] ; $tableau1 = [ "lat" => "talle1", "lon" => "lacourte1", ] ; $superTableau = [ $tableau0 , $tableau1 , ] ; print_r($superTableau); /* ça affiche Array ( [0] => Array ( [lat] => latte0 [lon] => lelong0 ) [1] => Array ( [lat] => talle1 [lon] => lacourte1 ) ) */ ?>
Dans mon vrai code il y a 6 colonnes par tableau et 5 tableaux au total, mais ça ne change pas le principe, donc autant simplifier pour le forum.
Bref...
Ce qui me pose difficulté c'est la partie du code qui rassemble les tableaux en superTableau ($superTableau = [ $tableau0 , $tableau1 , ] ;). Pourquoi ?
Parce que parfois $tableau0 ou $tableau1 n'existe pas (dans mon exemple ils sont remplis en dur, mais en vrai c'est selon des conditions qui varient).
Or, quand un tableau n'existe pas, j'ai besoin qu'il n'apparaisse pas dans superTableau. Pas du tout. Mais avec mon code, j'obtiens une ligne vide.
Exemple, imaginez que $tableau0 soit vide. Mon code ($superTableau = [ $tableau0, $tableau1 , ] ;) va me donner
Array ( [0] => [1] => Array ( [lat] => talle1 [lon] => lacourte1 ) )
Et là, ce qui est en gras me pose un problème.
J'aurais besoin que le résultat soit plutôt
Array ([0] => Array ( [lat] => talle1 [lon] => lacourte1 ) )
càd qu'il fasse comme si tableau0 n'avait jamais existé, génère une seule ligne, remonte les résultats de tabelau1 en ligne 0...
Mais je ne sais pas intégrer des if dans le code $superTableau = [ $tableau0, $tableau1 , ] ;, ça met une erreur.
Et si j'essaye de concaténer façon $superTableau ="" ; puis $superTableau .= $tableau0 ; et enfin $superTableau .= $tableau1 ; (ce qui me permettrait de mettre des if) le résultat concaténé ne fonctionne pas comme un tableau de tableau ça me donne juste ArrayArray.
J'ai essayé merge mais çà ne marche pas non plus (mais je suppose que ça n'est pas fait pour ça).
Bref, je ne sais pas comment mettre une condition à l'ajout de tel ou tel tableau à mon supertableau
Partager