[PHP] fonction qui retourne deux tableaux

Résolu/Fermé
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010 - Modifié par saad0n le 6/07/2010 à 11:04
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 8 juil. 2010 à 08:45
Bonjour,

j'ai la variable $champs suivante : R0910R1002R1001RR1001.
qui contient deux types d'informations : par exemple un champs de type R0911 veut dire que Recu le 09/11/2010

je voudrais une fonction qui me retourne deux listes $etat et $date que je pourrais importer dans une base de données Mysql. Voila un petit shema pour illustrer cela:

champs etat date
R0910 True 2010/10/09
R1002 True 2010/02/10
R1001 True 2010/01/10
R True (Null ou autre)
R1001 True 2010/01/10

le premier gros problème que j'ai c'est que visiblement $champs n'est pas un tableau et du coup je n'arrive pas à le manipuler. Le deuxième est que je ne sais pas faire de fonction qui retourne deux variables en php.

Si quelqu'un peut m'aider à resoudre l'un (ou les deux problèmes j'apprecierai enormement )

Merci beaucoup

A voir également:

4 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
6 juil. 2010 à 11:04
En gros tu veux découper une chaîne de caractère de façon à séparer les infos qui t'intéresse. Voici qui peut t'être utile :

https://www.php.net/manual/fr/function.substr.php
1
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010
6 juil. 2010 à 11:17
merci ca me resoud une partie du problème
je vais tester ca et je te dis
merci beauucoup
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
6 juil. 2010 à 11:21
De rien ;-)
Bonne continuation...
0
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010
6 juil. 2010 à 11:46
désolé de te decevoir mais ca marche pas :)
le problème c'est que $champs ca a l'air d'etre une chaine de tableaux :0 . En gros lorsque je fais un is_array( $champs ) ca me retourne : 11111
du coup quand je fais
substr($champs, 1) su $chamsp de cette forme : R1002R1005R0909
ca me retourne 100210050909
et si je fais substr($champs, 5) pour supprimer R1002 ca me retourne une chaine vide
???????
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
6 juil. 2010 à 11:49
Je comprends pas pourquoi ça marcherait avec 1 et pas avec 5... Tu n'as pas fait de faute de frappe pour substr($champs, 5)??
0
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010
6 juil. 2010 à 11:59
le problème est qu'il ne me traite pas $champs comme une seule chaine de caractères
normalement si je fais substr("R1002R1005R0909",5) il doit me retourner R1005R0909
et lui il supprime tout pcq jai limpression qu'il me fait un substr("R****",5 ) sur tous les blocs
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
6 juil. 2010 à 14:47
Bonjour,

Déjà, il faudrait savoir ce qu'est la variable $champs.

Je te conseille donc de mettre ce bout de code :
var_dump($champs);

Ensuite, pour mieux visualiser le résultat, il est préférable d'afficher le code source de la page dans le navigateur (pour avoir les retours à la ligne, sinon on ne voit rien c'est tout sur une ligne).

Xavier
1
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010
6 juil. 2010 à 14:52
salut
merci du conseil
voila ce que ca donne ( attention aux yeux )
string(1) " " string(0) "" string(5) "R1002" string(5) "R1005" string(0) "" string(0) "" string(5) "R0909" string(5) "R0911" string(0) "" string(0) "" string(5) "R0909" string(5) "R0910" string(0) "" string(0) "" string(5) "R1001" string(5) "R1003" string(0) "" string(0) "" string(5) "R1001" string(5) "R1003" string(0) "" string(0) "" string(5) "R1001" string(5) "R1003" string(0) "" string(0) "" string(5) "R1002" string(5) "R1004" string(0) "" string(0) "" string(5) "R1002" string(5) "R1004" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(5) "R1006" string(5) "R1006" string(0) "" string(0) "" string(5) "R1006" string(0) "" string(0) "" string(0) "" string(5) "R1002" string(0) "" string(0) "" string(0) "" string(5) "R0912" string(5) "R1004" string(0) "" string(0) "" string(5) "R0912" string(5) "R1006" string(0) "" string(0) "" string(5) "R1001" string(0) "" string(0) "" string(0) "" string(5) "R1001" string(5) "R1004" string(0) "" string(0) "" string(5) "R1003" string(5) "R1004" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(5) "R1003" string(5) "R1006" string(0) "" string(0) "" string(5) "R1006" string(0) "" string(0) "" string(0) "" string(5) "R1006" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) ""
0
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010
6 juil. 2010 à 14:53
qu'est ce que t'en penses ?
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
6 juil. 2010 à 14:55
Ça ressemble quand même à un tableau avec beaucoup de champs vide...Donc je vois pas comment tu peux savoir à l'avance où chercher les données qui t'intéressent...
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
6 juil. 2010 à 15:20
T'as rien oublié ? Y a pas un array() quelque chose tout au début ?
Parce que là, ça ne ressemble pas à un tableau mais plutôt à des variables de chaînes mises bout à bout...
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
6 juil. 2010 à 15:23
Oui ça ressemble à un tableau de string mais sans en être un. Je sais pas exactement quel type de variable c'est...
0
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010
7 juil. 2010 à 11:47
salut
j'ai tenté une nouvelle approche
j'ai crée un nouveau topic
https://forums.commentcamarche.net/forum/programmation-3/new#frmnewa
si vous avez une idée je suis preneur
0
saad0n Messages postés 19 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 10 août 2010
Modifié par saad0n le 7/07/2010 à 16:59
salut

ben finalement même si le type de mon champs est bizarre , substr arrive à gérer comme tu l'as suggéré Breub62 .La fonction var_dump a été très utile dans ce sense la. Merci beaucoup tout le monde et désolé pour le temps perdu . Pour la peine je mets ma solution ( on sait jamais )

$champs_etat= substr($champs,0,-4);
$champs_int= str_replace( 'R', 'true',$champs_etat );
$champs_date= substr($champs,5);

c'etait tout con

Re Merci tout le monde
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
8 juil. 2010 à 08:45
De rien. Bonne continuation ;-)
0