Page 1 sur 1

1) types structurés 2) insertion en fin de tableau

Posté : 29 mai 2006, 21:36
par HanX
Salut j'ai 2 problemes.

Je souhaite utiliser des types structurés pour insérer en fin de tableau. Existe t'il un équivalent du "typedef struct"... du langage C ?

Est-ce qu'il existe une fonction pour faire une insertion en fin de tableau (pour insérer le type :twisted:). J'ai trouvé qu'une fonction pour insérer la même valeur sur une longueur (je me rappelle plus de son nom :?)

En gros : $montab ==> [<$i,$g>,<$i,$g>,<$i,$g>...]


Merci d'avance

Posté : 29 mai 2006, 21:51
par Cyrano
Je peux me tromper, mais ce que tu cherche ressemble à un montage de tableau multi-dimensionnel. Comme je ne suis pas certain, j'aimerais que tu essayes de préciser avec un exemple... à moins qu'un spécialiste en C ne sache très bien à quoi correspond en PHP ce que tu cherches, le C n'est pas précisément ma spécialité... :-k

Posté : 29 mai 2006, 21:56
par HanX
je peux le faire en tableau multidimensionel... mais si j'ai posté c'est pour éviter cette façon assez chiante à coder :?


sinon j'ai pensé faire mon tableau comme ça [$i,$g,$i,$g...] mais je trouve ça un peu sale :s

Posté : 29 mai 2006, 22:06
par Cyrano
Je viens d'effectuer une petite recherche: le type structuré n'existe pas en PHP d'après ce que j'ai pu trouver et personnellement, je n'en ai jamais entendu parler. Donc, si ma première impression est la bonne, je crains que tu n'aie pas le choix de passer par les tableaux multi-dimensionels :?

Maintenant, comme je ne connais pas le C et que je ne saisis pas bien de quoi il s'agit, ce n'est peut-être pas a solution appropriée :-k

Posté : 29 mai 2006, 22:13
par HanX
merci Cyrano pour tes recherches... je vais me débrouiller autrement.

Sinon pour l'insertion en fin de tableau, tu as une solution simple ?

Posté : 29 mai 2006, 22:16
par Cyrano
Ben faudrait que j'aie une idée avec un exemple un peu parlant : j'utilise les tableaux au quotidien et je n'ai pas trop de problèmes avec ça, donc j'aurai sûrement une idée, mais il me faut un point de départ voire un bout de code s'il y a.

Posté : 29 mai 2006, 22:20
par HanX
function insert_fin($tab,$val) { // $tab tableau indexé automatiquement et $val entier
exit;
}

voilà mon code lol...

sinon j'aimerais faire un truc du genre (je prend l'exemple d'une chaine)
$tab = 'ceci';
$tab .= 'est fini';

bref ajouter à la suite .=

Posté : 29 mai 2006, 22:34
par Cyrano
BOn, si on parle de tableau indexé, on commence par déclarer la variable en tableau. PHP est très faiblement typé mais les tableaux doivent être déclarés contrairement aux variables scalaires : donc:
$tab = array();
Ensuite, tu rajoutes des éléments les uns après les autres. Pas besoin de définir d'avance un nombre d'éléments, les tableaux en PHP sont dynamiques :
$tab = array();
$tab[] = $val1;
$tab[] = $val2;
//... etc...
Si tu veux éventuellement ajouter un élément te permettant de savoir le nombre d'éléments ajoutés, utilise count() :
$nb_val = count($tab);
À partir de là, rien n'interdit d'ajouter un éléments pour insérer le nombre obtenu quoique l'intérêt de la manoeuvre reste douteux.

Il y a une autre syntaxe possible pour ajouter des éléments dans un tableau indexé, personnellement, je la trouve plus lourde et je ne l'utilise pas, mais il n'est pas inutile de la connaître :
array_push($val1, $tab);
array_push($val2, $tab);
//... etc ...
Pour ajouter une dimension, c'est également possible :
$tab = array();
$tab[$val1] = array();
$tab[$val1][] = $sous_val1;
$tab[$val1][] = $sous_val2;
//...
Bouts de code pratiques pour afficher en débuggage :
<pre>
<?php
var_dump($tab);
?>
</pre>
Pour la récupération, un comptage et une boucle :
$nb_val = count($tab);
for($i = 0; $i < $nb_val; $i++)
{
    echo("<p>". $tab[$i] ."</p>\n");
}
Voilà, j'espère que ça répond au moins partiellement à ta recherche, si tu as d'autres question, ben sens-toi à l'aise pour les poser :)

Posté : 29 mai 2006, 22:36
par HanX
oula j'en demandais pas autant :P !!! Mais je te remercie bien :D

Je pense pouvoir me débrouiller avec tout ça

Posté : 30 mai 2006, 09:34
par ouckileou
Pourquoi ne pas faire une classe pour remplacer ta structure ?

Posté : 30 mai 2006, 09:35
par HanX
non la programmation objet ça me donne des boutons :D

Posté : 30 mai 2006, 09:43
par ouckileou
non la programmation objet ça me donne des boutons :D
Plus que de gérer des tableaux multidimensionnels avec des boucles et des insertions à la fin ? :lol:

Tu devrais regarder quand même, si c'est juste pour remplacer un type structuré ça te fera une toute petite classe, avec getter() et setter() pour chaque attribut, et rien de plus.

L'objet en PHP c'est déjà plus léger que dans d'autres langages, d'autant plus si tu n'utilises pas tout

On peut voir la structure que tu voudrais avoir ?

Posté : 30 mai 2006, 10:04
par HanX
en fait je suis en train d'améliorer un qcm en ligne pour une agence d'interim. La base de donnée est recursive. Je souhaiterais garder en memoire tout ce qui est stocké comme réponses avant d'inscrire dans la base de donnée. J'ai opté pour solution de stocker dans un tableau (envoie par POST) et d'inscrire en base de donnée à la fin du QCM (avec parcours du tableau...).

J'ai toujours peur qu'en plein milieu du QCM, le gars s'amuse à faire précédent et tout...