[php] Problème avec un array
Résolu
3kn0x
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
lewis34 Messages postés 2557 Date d'inscription Statut Membre Dernière intervention -
lewis34 Messages postés 2557 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je code actuellement un petit convertisseur pour moi en interne, donc je n'ai pas grand besoin de l'optimiser un max.
J'utilise une serie de quelques array de la forme suivante :
Et ensuite pour convertir le texte recupperer precedement jaimerais utiliser une ligne de code tel que celle ci :
$type_e etant le type de caractere entrant et $type_s le type de caracteres sortant
Evidement Php n'aime pas trop le fait que j'utilise une variable pour savoir quelle partie de l'array il doit utiliser.
Dois utiliser une autre technique, changer la syntaxe de variable ?
J'espere que c'est pas trop brouillon merci d'avance de votre aide.
(J'aimerais quelques chose un peu de cette forme la, car je n'ai pas envie de coder 8 convertisseur differents;))
Je code actuellement un petit convertisseur pour moi en interne, donc je n'ai pas grand besoin de l'optimiser un max.
J'utilise une serie de quelques array de la forme suivante :
$v1 = array ( "dec" => "048", "hex" => "30", "bin" => "00110000", "car" => "0");
Et ensuite pour convertir le texte recupperer precedement jaimerais utiliser une ligne de code tel que celle ci :
$texte = str_replace($v1[''.$type_e.''],$v1[''.$type_s.''], $texte);
$type_e etant le type de caractere entrant et $type_s le type de caracteres sortant
Evidement Php n'aime pas trop le fait que j'utilise une variable pour savoir quelle partie de l'array il doit utiliser.
Dois utiliser une autre technique, changer la syntaxe de variable ?
J'espere que c'est pas trop brouillon merci d'avance de votre aide.
(J'aimerais quelques chose un peu de cette forme la, car je n'ai pas envie de coder 8 convertisseur differents;))
A voir également:
- [php] Problème avec un array
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
14 réponses
Hum non ca n'a pas resolu mon pb
j'avais comme erreur : Notice: Undefined index: in C:\wamp\www\traitement.php on line 79
maintenant j'ai celle ci :Notice: Undefined offset: 0 in C:\wamp\www\traitement.php on line 79
j'avais comme erreur : Notice: Undefined index: in C:\wamp\www\traitement.php on line 79
maintenant j'ai celle ci :Notice: Undefined offset: 0 in C:\wamp\www\traitement.php on line 79
C'est simplement que l'index de $type_e et/ou $type_s n'existe pas dans ton array.
Je vois pas comment on pourrait-être plus explicite que ce que t'indique php.
Je vois pas comment on pourrait-être plus explicite que ce que t'indique php.
utilise le foreach
$v1 = array ("dec" => "048","hex" => "30","bin" => "00110000","car" => "0"); foreach($v1 as $key=>$val) { //la tu fait ton traitement soit sur les clefs soit sur les valeurs }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
le rapport il est la
:Notice: Undefined offset: 0 in C:\wamp\www\traitement.php on line 79
a priori il a des probleme avec ses tableaux indexés,
donc utiliser foreach permet de passer outre les index et de faireles traitements adequat suivant que la valeur existe ou pas
et donc dans son cas on pourrais faire un truc comme ça
:Notice: Undefined offset: 0 in C:\wamp\www\traitement.php on line 79
a priori il a des probleme avec ses tableaux indexés,
donc utiliser foreach permet de passer outre les index et de faireles traitements adequat suivant que la valeur existe ou pas
et donc dans son cas on pourrais faire un truc comme ça
$v1 = array ("dec" => "048","hex" => "30","bin" => "00110000","car" => "0"); $tab_tmp=array(); foreach($v1 as $key=>$val) { if(isset($val) && !empty($val)) { $texte = str_replace($val, $v1[$key], $val); array_push($tab_tmp,$texte); } }
Non, mais c'est n'importe quoi ce que tu écris.
Forcément que $val existe puisque ce sont les valeurs de l'array que tu parcoures...
De plus ton utilisation de empty avec isset fait double usage.
Ton array $tab_tmp sera forcément le même que $v1...
Tu aurais fait :
Là, cela aurait été ok.
Forcément que $val existe puisque ce sont les valeurs de l'array que tu parcoures...
De plus ton utilisation de empty avec isset fait double usage.
Ton array $tab_tmp sera forcément le même que $v1...
Tu aurais fait :
if( isset($v1[$type_e], $v1[$type_s]) ) $texte = str_replace($v1[$type_e], $v1[$type_s], $texte);
Là, cela aurait été ok.
n'importe quoi,.... ,n'est ce pas un peu pretentieux de ta part de dire ça ... lol !!!
avec les peu d'elements dont je dispose je propose une idée pas une solution
isset et empty ne font pas double emploi si $val existe (isset==true) $val peut etre vide également.
Maintenant faudrais voir vraiment le code pour se faire une idée du problème parceque si $type_e correspond a une clef du tableau $v1, faudrais deja verifier que cette clef existe dans $v1 .
Et savoir comment qu'elle est obtenue cette variable $type_e
avec les peu d'elements dont je dispose je propose une idée pas une solution
isset et empty ne font pas double emploi si $val existe (isset==true) $val peut etre vide également.
Maintenant faudrais voir vraiment le code pour se faire une idée du problème parceque si $type_e correspond a une clef du tableau $v1, faudrais deja verifier que cette clef existe dans $v1 .
Et savoir comment qu'elle est obtenue cette variable $type_e
Renseigne toi sur ce que fait empty(), jette un oeil sur la doc ;)
n'est ce pas un peu pretentieux de ta part de dire ça ... lol !!!
Aucune prétention ici, le code que tu as mit est absurde, c'est un fait.
n'est ce pas un peu pretentieux de ta part de dire ça ... lol !!!
Aucune prétention ici, le code que tu as mit est absurde, c'est un fait.
le code que j'ai mis est un exemple tapé en 2-2 pas une solution, certes idiot, mais une base sur laquelle partir.
et quand a empty :Détermine si une variable contient une valeur non nulle.
isset isset renvoie TRUE si la variable est définie, FALSE si elle est pas define
mais je suppose que tu le savais donc inutile que j'en rajoute une couche
Le php je pense connaitre un peu ...... ;-)
mais bon a priori le probleme est resolu donc l'affaire est close
et quand a empty :Détermine si une variable contient une valeur non nulle.
isset isset renvoie TRUE si la variable est définie, FALSE si elle est pas define
mais je suppose que tu le savais donc inutile que j'en rajoute une couche
Le php je pense connaitre un peu ...... ;-)
mais bon a priori le probleme est resolu donc l'affaire est close
ah bon c'est nouveau ça .... big lol !!!
il est de notoriété publique que php a des fonctions qui ne servent à rien pourquoi s'emm.. à faire des fonctions qui teste si une variable est définie (isset) alors qu'empty fait les 2 en meme temps.. la c'est du portnawak
je reitère mon affirmation isset($var) verifie que $var existe qu'elle soit nulle ou pas
empty verifie seulement que $var n'est pas =vide ou:
* "" (une chaîne vide)
* 0 (0 en tant qu'entier)
* "0" (0 en tant que chaîne de caractères)
* NULL
* FALSE
* array() (un tableau vide)
* var $var; (une variable déclarée, mais sans valeur dans une classe)
encore un code idiot mais qui te permettra de comprendre la nuance entre empty et isset
ce qui peut etre important si tu veut faire ne serait ce qu'une division :
si tu divise un truc par une variable qui vaut 0 je te souhaite du plaisir pour obtenir un résultat.. mdr!!
il est de notoriété publique que php a des fonctions qui ne servent à rien pourquoi s'emm.. à faire des fonctions qui teste si une variable est définie (isset) alors qu'empty fait les 2 en meme temps.. la c'est du portnawak
je reitère mon affirmation isset($var) verifie que $var existe qu'elle soit nulle ou pas
empty verifie seulement que $var n'est pas =vide ou:
* "" (une chaîne vide)
* 0 (0 en tant qu'entier)
* "0" (0 en tant que chaîne de caractères)
* NULL
* FALSE
* array() (un tableau vide)
* var $var; (une variable déclarée, mais sans valeur dans une classe)
<PHP $var = ''; // Ceci est vrai, alors le texte est affiché if (isset($var)) { echo 'Cette variable existe, je l\'affiche.'; } // Ceci est faux car $var est vide, alors le texte est affiché if (isset($var) && !empty($var)) { echo 'Cette variable n\'est pas vide.'; } else { echo 'Cette variable existe et est vide.'; } ?>
encore un code idiot mais qui te permettra de comprendre la nuance entre empty et isset
ce qui peut etre important si tu veut faire ne serait ce qu'une division :
si tu divise un truc par une variable qui vaut 0 je te souhaite du plaisir pour obtenir un résultat.. mdr!!
Que de reponses merci d'avoir regarder mon code, depuis hier je n'ai rien touché et aujourd'hui il fonctionne il y a des choses que je ne comprendrais jamais desolé de vous avoir déranger pour rien.
resultat de ton code
[Sun Oct 04 16:10:00 2009] [error] [client 83.197.148.195] PHP Notice: Undefined variable: jexistepas in E:\\siteperso\\www\\1.php on line 21
[Sun Oct 04 16:10:00 2009] [error] [client 83.197.148.195] PHP Warning: Division by zero in E:\\siteperso\\www\\1.php on line 21
[Sun Oct 04 16:10:03 2009] [error] [client 83.197.148.195] PHP Notice: Undefined variable: jexistepas in E:\\siteperso\\www\\1.php on line 21
[Sun Oct 04 16:10:03 2009] [error] [client 83.197.148.195] PHP Warning: Division by zero in E:\\siteperso\\www\\1.php on line 21
no comment..
var_dump(empty($jexistepas)); // true $div=1/$jexistepas; echo'**'. $div;
[Sun Oct 04 16:10:00 2009] [error] [client 83.197.148.195] PHP Notice: Undefined variable: jexistepas in E:\\siteperso\\www\\1.php on line 21
[Sun Oct 04 16:10:00 2009] [error] [client 83.197.148.195] PHP Warning: Division by zero in E:\\siteperso\\www\\1.php on line 21
[Sun Oct 04 16:10:03 2009] [error] [client 83.197.148.195] PHP Notice: Undefined variable: jexistepas in E:\\siteperso\\www\\1.php on line 21
[Sun Oct 04 16:10:03 2009] [error] [client 83.197.148.195] PHP Warning: Division by zero in E:\\siteperso\\www\\1.php on line 21
no comment..
Cesse de t'empêtrer dans ton délire...
Tu me parles de division par zéro, alors que moi je te parle du fait que empty renvoi également true si une variable n'existe pas et fait donc double emploi avec isset, comme tu l'as fait dans ton code ci-dessus.
Puis d'abord je vois même pas le rapport avec ta division par zéro, tu fais du hors-sujet total là.
Bref, je vais pas n'éterniser avec tes palabres, continue ton sketch en solo si cela t'amuse.
Tu me parles de division par zéro, alors que moi je te parle du fait que empty renvoi également true si une variable n'existe pas et fait donc double emploi avec isset, comme tu l'as fait dans ton code ci-dessus.
Puis d'abord je vois même pas le rapport avec ta division par zéro, tu fais du hors-sujet total là.
Bref, je vais pas n'éterniser avec tes palabres, continue ton sketch en solo si cela t'amuse.
je n'ai aucune intention de perdre mon temps avec toi, mais comme nous sommes sur un forum d'entraide, j'estime qu'il est bien de delivrer des choses exactes.
Si je te parle de division par zéro c'es simplement du au fait que si tu traite la présence d'une variable et de son contenu tu ne PEUT PAS LE FAIRE UNIQUEMENT AVEC EMPTY.,j'aurais pu le faire avec un array.
Je suis entierement d'accord avec toi quand à la reponse d'empty, mais c'est la ou je veut preciser,empty se fout de savoir si ta variable est définie ou pas , si tu traite cette variable par la suite dans ton script, divison par cette variable, index d'un array que sais je d'autre, tu te retrouve avec des warning, des notices et au bout du compte un script qui plante.
Mais bon vu que tu a l'air d'etre plus informé que moi sur PHP, je ne vais pas entrer dans la polémique
Si je te parle de division par zéro c'es simplement du au fait que si tu traite la présence d'une variable et de son contenu tu ne PEUT PAS LE FAIRE UNIQUEMENT AVEC EMPTY.,j'aurais pu le faire avec un array.
Je suis entierement d'accord avec toi quand à la reponse d'empty, mais c'est la ou je veut preciser,empty se fout de savoir si ta variable est définie ou pas , si tu traite cette variable par la suite dans ton script, divison par cette variable, index d'un array que sais je d'autre, tu te retrouve avec des warning, des notices et au bout du compte un script qui plante.
Mais bon vu que tu a l'air d'etre plus informé que moi sur PHP, je ne vais pas entrer dans la polémique