2016-08-02 3 views
0
$url = file_get_contents("http://api.themoviedb.org/3/movie/000008?append_to_response=credits,images&api_key=###"); 

$json = json_decode($url, true) 
$inp = file_get_contents('test3.json'); 
$tempArray = json_decode($inp,true); 
$test = array($title=>$json); 
array_push($tempArray, $test);     
$jsonData = json_encode($tempArray,JSON_FORCE_OBJECT); 
file_put_contents('test3.json', $jsonData); 

, когда я добавить новый массив создает номер документа, как это ->Как добавить массив без создания идентификационного номера?

"Ariel": { 
     "adult": false, 
     "backdrop_path": "\/z2QUexmccqrvw1kDMw3R8TxAh5E.jpg", 
     "belongs_to_collection": { 
      "id": 8384, 
      "name": "Proletariat Collection", 
      "poster_path": null, 
      "backdrop_path": "\/ibLeWo3X3dVo4rxvn4m3y90ms1I.jpg" 
     }, 
"0": { 
     "Varjoja paratiisissa": { 
      "adult": false, 
      "backdrop_path": "\/6YjUX87VtIEuDzanBE6obVxE9V3.jpg", 
      "belongs_to_collection": { 
       "id": 8384, 
       "name": "Proletariat Collection", 
       "poster_path": null, 
       "backdrop_path": "\/ibLeWo3X3dVo4rxvn4m3y90ms1I.jpg" 
      }, 
"1": { 
     "Life in Loops (A Megacities RMX)": { 
      "adult": false, 
      "backdrop_path": "\/udvB86uyzJ6P9vmB83WfrCbnmnI.jpg", 
      "belongs_to_collection": null, 
      "budget": 42000, 
      "genres": { 
       "0": { 
        "id": 99, 
        "name": "Documentary" 
       } 
      } 

первого один в порядке, но затем он добавляет новый номер документа befire названия фильма й не хочет, чтобы добавить номер документа. пожалуйста, кто-нибудь может мне помочь, как добавить новый массив без создания идентификационного номера?

+0

Где '$ title' приходят из – RiggsFolly

+0

Дайте нам пример строки JSON вы получаете от апи – RiggsFolly

ответ

0
  1. сортировка() может изменить индексы массива в число.
  2. JSON_FORCE_OBJECT может не понадобиться.

Итак:

array_push($tempArray, $test); 
sort($tempArray); 
$jsonData = json_encode($tempArray); 
0

Ваш код кажется неполным, но попробуйте заменить

$test = array($title=>$json); 
array_push($tempArray, $test); 

по

$tempArray[$title] = $json; 
+0

Я думаю, что вы правы. – BeetleJuice

0

Если все записи в test3.json происходят из того же API (поэтому имеют такую ​​же форму), просто нажмите следующая запись в массиве без установки ключа вручную. В конечном итоге вы получите множество всех фильмов, которые легко пройти.

$newMovie = json_decode($url,true); 
$allMovies = json_decode(file_get_contents('test3.json'),true); 
$allMovies[] = $newMovie; 

$jsonData = json_encode($allMovies,JSON_FORCE_OBJECT); 
file_put_contents('test3.json',$jsonData); 
Смежные вопросы