2013-12-07 8 views
0

Мои данные JSON выглядит следующим образом:Как создать массив JSON с помощью PHP

[ 
    { 
     "email":"[email protected]", 
     "firstName":"test", 
     "lastName":"test", 
     "value":"[email protected]", 
     "tokens":"[email protected]" 
    }, 
    { 
     ... 
    } 
] 

и PHP данных для создания файла JSON выглядит следующим образом:

<?php 
    session_start(); 
    include('connection.php'); 
    $userId = $_SESSION['sess_user_id']; 
    $act = $_POST['action']; 
    $sth = mysql_query("SELECT email, firstName, lastName, email AS value, email AS tokens FROM User"); 
    $rows = array(); 
    while($r = mysql_fetch_assoc($sth)) 
    { 
     $rows[] = $r; 
    } 
    $fp = fopen('./test.json', 'w'); 
    fwrite($fp, json_encode($rows)); 
    fclose($fp); 
?> 

Когда пользователь добавляется к базы данных, он запускает этот PHP код:

$file = './test.json'; 
$data = json_decode(file_get_contents($file), true); 
$newdata = array('email'=>$email, 'firstName' => $firstName, 'lastName'=>$lastName, 'value'=>$email, 'tokens'=>$email); 
$data[] = $newdata; 
file_put_contents($file, json_encode($data)); 

Я хочу, чтобы файл мой JSON выглядеть следующим образом:

[ 
    { 
     "email":"[email protected]", 
     "firstName":"test", 
     "lastName":"test", 
     "value":"[email protected]", 
     "tokens":[ 
      "[email protected]" 
     ] 
    } 
] 

Я попытался понять это, но не смог. Пожалуйста помоги?

+2

Почему? '[]' означает «массив», и у него нет _look_ like 'email' будет иметь значение> 1. –

ответ

2

php обрабатывает массивы, отличные от javascript (который различает объекты и массивы).

$newdata = array(
    'email'=>$email, 
    'firstName' => $firstName, 
    'lastName'=>$lastName, 
    'value'=>$email, 
    'tokens'=>array($email) 
); 

должен это сделать.

Смежные вопросы