Extraire valeur d'un tableau

Répondre
Lefounard
le 24/04/2006 à 15:04
Lefounard
Bonsoir,
Voila j'utilise une classe d'upload, qui me renvoi les erreur du fichier envoyé sous forme d'un tableau multidimensionnelle :
Quand je fait un print_r de mon tableau ca me donne ca
  1. Array ( [1] => Array ( [4] => Le champ du formulaire est vide ) )
.
Or je suppose que seulement la case 4 du tableau contenu dans la case 1 du tableau englobant, est remplit. Donc j'ai chercher tres rapidement dans la doc. J'ai fait ma fonction mais apparement elle fonctionne pas, elle renvoit rien
  1. <?php
  2. function extracterreur($tableau) {
  3. $i=0;
  4. $j=0;
  5. $taille=count($tableau);
  6. $trouver=FALSE;
  7. $erreur="";
  8. while($i<$taille && !$trouver)
  9. {
  10. $taille2=count($tableau[$i]);
  11. while($j<$taille2 && !$trouver)
  12. {
  13. if(!empty($tableau[$i][$j]))
  14. {
  15. $erreur=$tableau[$i][$j];
  16. $trouver=TRUE;
  17. }
  18. $j++;
  19. }
  20. $i++;
  21. }
  22. return $erreur;
  23. }
  24. ?>

Merci de vos conseils,
Ciao,
I am singing in the rain , I am happy again !!
moogli
le 26/04/2006 à 15:58
moogli
Salut,

pour commencer je pense que si tu a plusieurs erreur tu n'auras que le dernier message !

perso j'aurias utiliser deux foreach :)
  1. <?php
  2. function truc ( $tableau ) {
  3. $erreur = array();
  4. foreach ( $tableau as $key => $value) {
  5. foreach ( $value as $clef => $valeur ) {
  6. if ( !empty($valeur)) {
  7. $erreur[] = $valeur;
  8. }
  9. }
  10. }
  11. if ( count( $erreur) == 0 ) {
  12. $erreur[] = 'Aucun message d\'erreur';
  13. }
  14. return $erreur;
  15. }
  16. // utilisation
  17. $tableau = array(array('',''),array('','','','','truc'));
  18. var_dump(truc($tableau));
  19. ?>


résultat

array(1) {
[0]=>
string(4) "truc"
}


cela te retourn un tableau, si tu veut t'arreter au 1er message d'erreur, il te suffit de remplacer le contenu du if par un return $valeur. Pense à ajouter un return false à la fin de la fonction pour le cas ou tu n'ai pas de message d'erreur :)

Coté fonctionnement, à priori si le message est toujours au même endroit je pense que cela est plus simple d'utiliser les coordoné pour aller plus vite et être sur du message à afficher ;)

@+
Il en faut peu pour être heureux !!!!!
Lefounard
le 26/04/2006 à 17:43
Lefounard
Salut
merci de ta solution, je vais m'y pencher dessus pour l'utiliser,
Ciao,
I am singing in the rain , I am happy again !!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours