1st JSON file with dictionary. -> dictionary.json
Array(
[label] => Name
[options] => Array
(
[green] => Value 1
[blue] => Value 2
[purple] => Value 3
))
2nd JSON file with products with all eng names. -> main.json
Array
(
[0] => Array
(
[id] => 1
[cat_id] => 1
[options] => Array
(
[width] = 100
[height] = 100
[color] = green
)
)
etc.
)
I would like to create a new JSON file that would contain the same data as the 2nd JSON file, plus a translated values for color attribiute. The script below allows me to change the color to a value from the dictionary, but when writing to a new file the names remain the same - unchanged. Is it possible to write it with changed values?
<?php
$json = file_get_contents('main.json');
$json_dict = file_get_contents('dictionary.json');
$decoded = json_decode($json);
$decoded_dict = json_decode($json_dict);
for($i = 1; $i < count($decoded); $i++){
$temp = $decoded[$i]->options->color;
$decoded[$i]->options->color = $decoded_dict->options->$temp;
}
$new_json = json_encode($decoded);
file_put_contents("myfile.json", $new_json);
forloop must start from0and not from1when you use the loop-index as key-identifier.