J'ai un objet JSON que j'essaie de modifier. J'ai donc créé la fonction suivante. Je désérialise d'abord l'objet JSON puis, étant donné le tableau et le chemin que je veux modifier, je modifie la valeur.Valeur d'édition laide sur un tableau imbriqué PHP
function setInDict($arr, $path, $value){
switch(sizeof($path)){
case 1:
$arr[$path[0]] = $value;
break;
case 2:
$arr[$path[0]][$path[1]] = $value;
break;
case 3:
$arr[$path[0]][$path[1]][$path[2]] = $value;
break;
case 4:
$arr[$path[0]][$path[1]][$path[2]][$path[3]] = $value;
break;
case 5:
$arr[$path[0]][$path[1]][$path[2]][$path[3]][$path[4]] = $value;
break;
}
return $arr;
}
J'ai essayé beaucoup de choses (récursion, & arr) pour le faire fonctionner de manière dynamique, mais mon expérience de PHP est limité et je ne peux pas le faire fonctionner.
Existe-t-il un moyen propre de le faire. Y a-t-il quelque chose d'autre que je peux essayer?
Par exemple je le JSON suivant et je veux modifier subsubkey à la valeur 2
{
"key":{
"subkey":{
"subsubkey":3
}
}
}
Je deserialize à l'aide json_decode($json, true);
et je crée le tableau $path
qui serait
['key', 'subkey', 'subsubkey']
pouvez-vous afficher les valeurs d'entrée de $ arr, $ path, $ value'? – RomanPerekhrest
Copie possible de [PHP: Définir la valeur d'un élément de tableau associatif multidimensionnel en utilisant un chemin défini dans un tableau séparé] (http://stackoverflow.com/questions/6123061/php-set-the-value-of-a- multidimensionnel-associative-array-element-using-a-path) –
@MattRaines Ce n'est pas la même chose. – YoloQ