PHP:如何反转JSON数组

时间:2011-06-23 22:47:25

标签: php multidimensional-array

有人可以帮我找一些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中完成,但我需要在服务器端执行此操作。

2 个答案:

答案 0 :(得分:8)

你做了回归,但在错误的领域。您想要反转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>';

答案 1 :(得分:5)

您需要撤消$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>';
}