До того, как начались крики «DUPLICATE», я использовал несколько постов здесь и в других местах в качестве руководящих указаний в попытке решить эту проблему, и они проделали длинный путь, но я застрял на последнем шаге.
У меня есть объект 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 в массив, где мой фрагмент кода. Это объясняет, почему они не совместимы, но все еще заставляет меня пытаться заставить сортировку работать.
Этот код делает то, что мне нужно. Последний шаг состоял в том, чтобы просто привести полученный массив как объект и убедиться, что код Smarty ссылается на все правильно.
Других решений пока нет …