PHP: Как изменить массив JSON


Может кто-нибудь помочь мне с PHP, пожалуйста.

Исходный код ~ работает, но вывод в неправильном порядке. Поэтому мне нужно изменить последовательность/порядок массива JSON.

Но когда я пытаюсь изменить последовательность с помощью PHP (извлечь) код ниже:

$json = file_get_contents($url,0,null,null); 
$tmp = json_decode($json, true);    // using a temp variable for testing
$result = array_reverse($tmp);      //  <--new line to reverse the arrray

foreach ($result['data'] as $event) {
    echo '<div>'.$event['name'].'</div>';

Он не изменяет выходную последовательность.

Что я делаю не так? Есть ли другой/лучший способ?

PS - Я могу сделать это на Javascript, но мне нужно сделать это на стороне сервера.

Author: user801347, 2011-06-24

2 answers

Вы выполняете возврат, но в неправильном поле. Вы хотите поменять местами поля data вместо массива:

$json = file_get_contents($url,0,null,null); 
$tmp = json_decode($json, true);    // using a temp variable for testing
$result = $tmp;
$result['data'] = array_reverse($result['data']);

foreach ($result['data'] as $event) {
    echo '<div>'.$event['name'].'</div>';
 7
Author: hakre, 2011-06-23 22:51:09

Вам нужно изменить содержимое массива $tmp['data'], а не $tmp само по себе.

$json = file_get_contents($url); 
$tmp = json_decode($json, true);
$result = array_reverse($tmp['data']);

unset($tmp);

foreach ($result as $event) {
  echo '<div>'.$event['name'].'</div>';
}
 5
Author: Andrew Moore, 2011-06-23 22:49:12