C’est quoi au juste un tableau dans un tableau ?
En JavaScript par exemple, ça donne quelque chose comme :
javascriptlet monTableau = [[1, 2], [3, 4], [5, 6]];
Et paf ! T’as un tableau de tableaux. C’est aussi simple (et fourbe) que ça.
Comment on l’appelle vraiment dans le milieu ?
Le nom technique
Le vrai nom, celui que t’entendras dans les docs ou les cours d’info : tableau multidimensionnel. C’est un terme qui existe dans plein de langages (Python, PHP, C, Java…). Quand t’as deux niveaux de tableaux, on parle de tableau à deux dimensions. Trois niveaux ? Trois dimensions, et ainsi de suite.
Et dans la vraie vie ?
Entre devs, surtout dans une ambiance détendue (genre après 2 cafés et une release bien passée), on dira plus souvent :
"un tableau de tableaux"
"un nested array" (pour les plus anglicisés)
ou même "un gros bordel de tableaux", quand on ne retrouve plus où on a foutu le bon index...
Pourquoi on s’en sert (même si ça fout parfois la trouille)
Les cas d’usage concrets
Un bon vieux tableau imbriqué, c’est super utile quand tu veux représenter :
Une grille de jeu (genre échecs, sudoku ou puissance 4)
Un tableau Excel avec lignes et colonnes
Des données géographiques : imagine un tableau où chaque élément représente une latitude et une longitude
Bref, à chaque fois que t’as besoin de ranger des trucs en lignes et en colonnes, c’est ton meilleur pote.
Anecdote perso (un peu honteuse)
Y’a quelques années, je bossais sur une appli de réservation de salles. Mon collègue Damien (que je soupçonne d’avoir un clavier en forme de cactus vu ses bugs chelous) avait codé un tableau imbriqué pour les dispos par semaine.
Sauf que les index étaient inversés. Résultat : on réservait des salles le dimanche... en pensant que c’était mercredi. Un client a organisé son AG au mauvais moment. On a dû lui offrir les croissants.
Les pièges à éviter (crois-moi, je me suis fait avoir)
Perdre le fil des indices
Quand tu manipules un tableau dans un tableau, tu fais souvent tableau[i][j]. Sauf que i, c’est la ligne, et j la colonne... sauf si t’as fait l’inverse. Et là, bon courage pour debugger.
Mélanger les types
C’est tentant de foutre un string dans un coin, un nombre dans un autre. Mais c’est galère ensuite pour itérer proprement ou faire un tri. Ton tableau doit rester cohérent (comme une équipe de foot qui veut pas s’embrouiller sur le terrain).
Bonus : et dans d'autres langages, ça change ?
En Python
C’est pareil, sauf qu’on peut aussi utiliser numpy pour faire des matrices, qui sont une forme très clean de tableaux multidimensionnels.
pythonimport numpy as np ma_matrice = np.array([[1, 2], [3, 4]])
En PHP
Tu verras souvent des trucs comme :
php$tableau = array( array(1, 2), array(3, 4));
Et PHP te laisse foutre un peu tout et n’importe quoi là-dedans... mais ça, c’est un autre débat.
En résumé : appelle-le comme tu veux, mais manipule-le avec amour
Que tu l’appelles tableau imbriqué, array multidimensionnel ou juste ce fichu truc qui me renvoie toujours "undefined", ce genre de structure est hyper puissant.
Mais attention, il demande un peu de rigueur... et parfois une bonne dose de café.
