[Json] fonction php structure
Bonjour,
Je travail sur un fichier JSON. Mon fichier a une structure avec plusieur niveaux(indefini).
Mon souci c'est que je veux recréer le même fichier dans un autre tableau.
Au debut de ma fonction tous se passe bien. j'ai réaliser le cas de base.
Ensuite ca se complique j'utilise la recursivité. je n'arrive pas a créer un tableau dans un tableau en PHP.
voici mon resultat:
Code:
1 2 3 4 5 6 7 8 9
|
{
"cle8":,
"sous-cle1": "sous-cle un",
"sous-cle2": "sous-cle deux",
"sous-cle3":,
"sous-sous-cle1": "sous-sous-cle un",
"sous-sous-cle2": "sous-sous-cle deux"
} |
et voici mon fichier json:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
{
"cle8" : {
"sous-cle1" : "sous-cle un",
"sous-cle2" : "sous-cle deux",
"sous-cle3" : {
"sous-sous-cle1":"sous-sous-cle un",
"sous-sous-cle2":"sous-sous-cle deux"
}
}
} |
et mon code php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public function rec(array $jsons = null)
{
foreach ($jsons as $key => $value) {
$this->myarray[$key] = array();
if (is_array($value)) {
$this->rec($value);
}
else{
$this->myarray[$key] = $value;
}
}
return $this->myarray;
} |
Avec votre aide j'èspère résoudre ce cas..
Avec et sans fonction php..
Merci pour vos réactions.
je me suis completement planté..
Bonjour,
Je reouvre ce post car je n'ai pas trouve de solution à mon problème.
Je parcour bien mon json mais le tableau ne se contruit pas correctement
voici mon algo:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public function rec(array $jsons = null)
{
$this->myarray = [];
foreach($jsons as $key => $value) {
//If $value is an array.
if (is_array($value)) {
//We need to loop through it.
$this->myarray[$key] = $this->rec($value);
} else {
//It is not an array, so print it out.
$this->myarray[$key] = $value;
}
}
return $this->myarray;
} |
et voici mon json a transformer en tableau:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
{
"sous-cle1" : "sous-cle un",
"sous-cle2" : "sous-cle deux",
"sous-cle3" : {
"sous-sous-cle1":"sous-sous-cle un",
"sous-sous-cle2":"sous-sous-cle deux",
"sous-sous-cle3":"sous-sous-cle trois"
}
} |
et le resultat obtenu:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
{
"sous-sous-cle1": "sous-sous-cle un",
"sous-sous-cle2": "sous-sous-cle deux",
"sous-sous-cle3": "sous-sous-cle trois",
"sous-cle3": {
"sous-sous-cle1": "sous-sous-cle un",
"sous-sous-cle2": "sous-sous-cle deux",
"sous-sous-cle3": "sous-sous-cle trois"
}
} |
merci pour votre aide.
A nouveau [Solution trouvé]
J'ai trouver ma solution
Après réflexion j'ai fini par comprendre mon raisonnement.
Je devait travail sur le tableau
- créer avec JSON.parse
- Parcourir les couples clées valeurs
- modifier les valeurs
- et copier le nouveau tableau dans un nouveau fichier JSON
voila le cheminement et voici la fonction PHP:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public function rec(array $jsons)
{
if(is_array($jsons)) {
foreach ($jsons as $key => $value) {
if (is_array($value)) {
$jsons[$key] = $this->rec($value);
} else {
$jsons[$key] = $value . "-modfied";
}
}
}
return $jsons;
} |