2017-08-16 68 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代碼正確地引用了所有內容。