2017-08-16 157 views
-1

在开始“DUPLICATE”的呼喊之前,我已经在这里和其他地方使用了几篇文章作为试图解决这个问题的指南,并且他们让我走了很长的路,但我陷入了最后一步。使用PHP中较小的JSON对象对一个大的JSON对象排序

我有一个五深的JSON对象。该对象用于填充网页上的表格。表中的每个项目都有0-100的分数,但他们只是随意地扔进桌子。我希望他们看起来排在最前面的最低分数。

我所做:

$jarr = json_decode($json, true); 
$marr = $jarr['g']; 

foreach ($marr as $key => $row){ 
    $score[$key] = $row['score']; 
    $component[$key] = $row[$key]; 
} 

array_multisort($score, SORT_ASC, $component, SORT_STRING, $marr); 
print_r($marr); 

推理:较小的对象“g”为较大的JSON对象内部关联数组的一个数组并是实际需要进行排序只有一个,所以我操作的只有这一部分,并得到功能代码。

当我把这段代码放到源代码中时,它并没有打破页面,但我只得到了分数的输出;我还需要下部阵列中的所有其他信息。我尝试将逻辑应用于较大的JSON对象,但没有做任何事情(这里可能只是用户错误),我尝试对较小的对象进行排序并打印较大的对象。

如何返回整个JSON对象与'g'对象排序?

编辑:我发现问题的一部分是源代码没有将JSON转换为我的代码片段所在的数组。这解释了为什么他们不兼容,但仍然让我试图让分拣工作。

回答

0

该代码完成我所需要的操作。最后一步是将结果数组转换为对象,并确保Smarty代码正确地引用了所有内容。