[RESOLU] Image mentale des array()

Eléphanteau du PHP | 42 Messages

11 juin 2015, 12:36

Bonjour,

Je ne suis pas un gros noob, mais coté tableau je rame depuis des années car je n'ai aucune image mental de ce qui se passe.

Auriez vous un tuto ou un lien qui explique avec des image genre tableau excel ce qui ce passe.

Exemple
$toto = array(); // Cela signifie que l'on crée l'équivalent d'un fichier exel avec une seule page, une seul ligne et une seule conole, donc une seule cellule, vide.

$toto[0] = 'ici'; // La ligne 0 contient 'ici'
$toto[1] = 'labas'; // La ligne 2 contient 'labas'

Au dela de cette simplicité je fais du copier coller des mes codes car je me perd.

Bonne journée

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 juin 2015, 14:11

Bonjour,

Ce tuto te permettra peut être d'y voir plus clair dans tes tableaux :)
http://openclassrooms.com/courses/conce ... ableaux-43
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 42 Messages

12 juin 2015, 11:49

C’est surtout du multidimentionnel qu'il me faut.
Et cherche à avoirt une image mental plus qu'un listing hierarchique mental.
Mais je pense que c'est le mot tableau qui m'a toujours trompé.
array(); ça ressemble plus à une hiérarchie à plusieurs niveaux qu'a un tableau à proprement parlé.

Je pense que l'image mentale se rapproche plus d'un arbre et de ses branches.
A vérifier...

Mammouth du PHP | 688 Messages

12 juin 2015, 11:54

un bon moyen de comprendre, c'est de faire un dump de ta variable tableau et de regarder le source généré.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 juin 2015, 12:39

Les tableaux multidimensionnels sont effectivement plus proches des arbres que des tableaux excel :)

Si tu veux une image qui se rapproche d'excel pour mieux concevoir ce que peut être un tableau, il faut imaginer que chaque cellule de ta feuille peut contenir un nouvelle feuille.
Ainsi un tableau a une dimension ne serait qu'une ligne d'excel, à deux dimensions on passe à la feuille et au delà on serait sur plusieurs feuilles, à la différence que celles-ci seraient entièrement liées les unes aux autres et non indépendantes comme c'est le cas pour le tableur.

Mais comme le dit tof, si tu fais un var_dump() ou un print_r() sur un tableau et que tu regardes le code généré (pas celui interprété par le navigateur qui vire les tabulations et retours à la ligne à l'écran, mais bien le code source), tu verras que php le représente sous forme d'arbre plutôt que de s'embêter à gérer un affichage en "tableau" :)
echo '<pre>';
print_r($mon_tableau);
echo '</pre>';
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 42 Messages

17 juin 2015, 17:03

Oui, j'ai fini par comprendre. C'est un arbre simplifié. Un cellule contient soit une valeur, soit une autre cellule. Comme un arbre qui contient soit une branche double (en Y disons) soit un fruit. En doublant chaque branche on multiplié les clés (les ancêtres communs).