Как редактировать файл JSON с помощью PHP - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу записать данные в файл json, используя PHP, как в примере ниже, но он всегда добавляет данные вне квадратных скобок (массивов).

Как мне написать в квадратных скобках? Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 17 апреля 2019

Вы очень близки.Измените ваш код так, как показано ниже:

$current_data = file_get_contents('users.json'); 
$array_data = json_decode($current_data, true);

$array_data["users"][] = array (          //   -> this line has been changed
         'name'        =>     $_POST["name"],  
         'mobile'      =>     $_POST["mobile"],  
         'datedon'     =>     $_POST["datedon"]  
          );

$final_data  = json_encode($array_data);  
...

Отредактировано:

Если вы хотите добавить элемент в начало вашего массива, используйте array-unshift:

...
$array_data = json_decode($current_data, true);
$item = array ( 
         'name'        =>     $_POST["name"],  
         'mobile'      =>     $_POST["mobile"],  
         'datedon'     =>     $_POST["datedon"]  
          );
array_unshift($array_data["users"] , $item);
$final_data  = json_encode($array_data);  
...
2 голосов
/ 17 апреля 2019

Раствор 1

Измените свой код с этого:

$extra[] = array ( 
         'name'        =>     $_POST["name"],  
         'mobile'      =>     $_POST["mobile"],  
         'datedon'     =>     $_POST["datedon"]  
          );

$array_data[] = $extra;  

Чтобы это выглядело примерно так:

$array_data['users'][] = array (          
         'name'        =>     $_POST["name"],  
         'mobile'      =>     $_POST["mobile"],  
         'datedon'     =>     $_POST["datedon"]  
          );

Решение 2

Изменить строку

$array_data[] = $extra; 

ниже:

$array_data['users'][] = $extra; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...