[php] Problème avec un array
Résolu/Fermé
3kn0x
Messages postés
30
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
4 octobre 2009
-
3 oct. 2009 à 19:01
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 4 oct. 2009 à 18:50
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 4 oct. 2009 à 18:50
A voir également:
- [php] Problème avec un array
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php?id=1 - Forum PHP
- Retour à la ligne php ✓ - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
14 réponses
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
3 oct. 2009 à 19:33
3 oct. 2009 à 19:33
$texte = str_replace($v1[$type_e], $v1[$type_s], $texte);
Tout simplement non ?
3kn0x
Messages postés
30
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
4 octobre 2009
3 oct. 2009 à 20:07
3 oct. 2009 à 20:07
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
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
3 oct. 2009 à 20:19
3 oct. 2009 à 20:19
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.
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
3 oct. 2009 à 20:42
3 oct. 2009 à 20:42
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
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
4 oct. 2009 à 00:50
4 oct. 2009 à 00:50
C'est quoi le rapport avec foreach ?
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
4 oct. 2009 à 09:01
4 oct. 2009 à 09:01
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); } }
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
4 oct. 2009 à 10:08
4 oct. 2009 à 10:08
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.
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
4 oct. 2009 à 12:09
4 oct. 2009 à 12:09
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
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
4 oct. 2009 à 13:31
4 oct. 2009 à 13:31
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.
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
4 oct. 2009 à 14:06
4 oct. 2009 à 14:06
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
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
>
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
4 oct. 2009 à 14:48
4 oct. 2009 à 14:48
A-priori, non, tu ne connais pas, puisque tu ne sais pas que empty() teste également si une variable est définie...
Bref, tu sa raison sur le fait qu'il vaut mieux en rester là.
Bref, tu sa raison sur le fait qu'il vaut mieux en rester là.
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
>
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
4 oct. 2009 à 15:48
4 oct. 2009 à 15:48
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!!
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
>
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
4 oct. 2009 à 16:00
4 oct. 2009 à 16:00
A croire que tu le fais exprès...
var_dump(empty($jexistepas)); // true
var_dump(empty($jexistepas)); // true
3kn0x
Messages postés
30
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
4 octobre 2009
4 oct. 2009 à 13:37
4 oct. 2009 à 13:37
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.
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
4 oct. 2009 à 16:11
4 oct. 2009 à 16:11
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..
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
4 oct. 2009 à 17:05
4 oct. 2009 à 17:05
bizarre y'a plus personne sur ce coup la.. lol !
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
4 oct. 2009 à 17:47
4 oct. 2009 à 17:47
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.
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
4 oct. 2009 à 18:50
4 oct. 2009 à 18:50
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