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
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
<?php
function extracterreur($tableau) {
$i=0;
$j=0;
$taille=count($tableau);
$trouver=FALSE;
$erreur="";
while($i<$taille && !$trouver)
{
$taille2=count($tableau[$i]);
while($j<$taille2 && !$trouver)
{
if(!empty($tableau[$i][$j]))
{
$erreur=$tableau[$i][$j];
$trouver=TRUE;
}
$j++;
}
$i++;
}
return $erreur;
}
?>

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 :)
<?php
function truc ( $tableau ) {
$erreur = array();
foreach ( $tableau as $key => $value) {
foreach ( $value as $clef => $valeur ) {
if ( !empty($valeur)) {
$erreur[] = $valeur;
}
}
}
if ( count( $erreur) == 0 ) {
$erreur[] = 'Aucun message d\'erreur';
}
return $erreur;
}
// utilisation
$tableau = array(array('',''),array('','','','','truc'));
var_dump(truc($tableau));
?>


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