Добрый день тем умнее меня. Я был повсюду в Google, и здесь безрезультатно. Вот моя ситуация ... У меня есть файл в формате JSON с этим:PHP JSON сортировка из ассоциативного массива STUCK
{
"firstset": {
"xgroup": [
{
"order": 3,
"title": "third in xgroup"
}, {
"order": 5,
"title": "fifth in xgroup"
}, {
"order": 4,
"title": "fourth in xgroup"
}, {
"order": 1,
"title": "first in xgroup"
}, {
"order": 2,
"title": "second in xgroup"
}
]
},
"secondset": {
"ygroup": [
{
"order": 7,
"title": "seventh in ygroup"
}, {
"order": 4,
"title": "fourth in ygroup"
}, {
"order": 6,
"title": "sixth in ygroup"
}, {
"order": 1,
"title": "first in ygroup"
}, {
"order": 3,
"title": "third in ygroup"
}, {
"order": 2,
"title": "second in ygroup"
}, {
"order": 8,
"title": "eighth in ygroup"
}, {
"order": 5,
"title": "fifth in ygroup"
}
]
}
}
и это PHP:
$json_url = "js/testlist.json";
$json = file_get_contents($json_url);
$data = json_decode($json, TRUE);
echo '<ul>';
foreach ($data['firstset']['xgroup'] as $val) {
echo '<li>' . $val['order'] . '.) ' . $val['title'] . '</li>';
}
echo '</ul>';
Я пробовал все, от старомодного «my_sort 'функции, найденные здесь, только для сортировки всего массива безрезультатно. Есть ли способ сортировать по полю «order» в массиве «firstset» и отображать данные?
Спасибо заранее ...
Где твоя попытка использовать 'usort'? – Flosculus
Вы можете использовать 'array_column', чтобы использовать значения' order' в качестве ключей и вместо этого сортировать. Вы также можете сортировать с помощью специального обратного вызова, очевидно, если вы используете более старую версию PHP –