Как получить первые 10 значений массива с помощью json в php

Это пример моего файла JSON.

{"Variable":"Hello","Variable1":20}, {"Variable":"Hi","Variable1":30},
{"Variable":"How","Variable1":40}, {"Variable":"Who","Variable1":50},
{"Variable":"Where","Variable1":60}, {"Variable":"This","Variable1":100},
{"Variable":"Pork","Variable1":10}, {"Variable":"Creep","Variable1":90},
{"Variable":"Mega Creeps","Variable1":80}, {"Variable":"LOL","Variable1":0},
{"Variable":"ROFL","Variable1":0}, {"Variable":"LMAO","Variable1":0},
{"Variable":"POP","Variable1":0}, {"Variable":"LOVE","Variable1":0},
{"Variable":"PICK","Variable1":0}, {"Variable":"WHIZ","Variable1":0},
{"Variable":"BORED","Variable1":0}, {"Variable":"KILLAH","Variable1":0},
{"Variable":"LOLLING","Variable1":0}, {"Variable":"HALOO  HALOO","Variable1":0}

Как я могу получить только 10 лучших от самого высокого числа Variable1 до наименьшего? Но файл JSON будет передаваться в том же формате.

Отсортируйте массив по Variable1, затем используйте array_slice($array, 0, 10), чтобы получить первые 10.

Barmar 09.07.2019 06:47

Я предлагаю вам начать изучение основ.

nice_dev 09.07.2019 06:47

Это недопустимый файл JSON. У вас должно быть [ в начале и ] в конце.

Barmar 09.07.2019 06:48

Можете ли вы показать код, который вы пробовали?

Vinay Patil 09.07.2019 06:49

Спасибо всем за ответы на мой вопрос.. я уже понял...

wayan wahyu Adi Putra 09.07.2019 06:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
5
1 193
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

PHP должен будет работать с массивами, поэтому преобразуйте JSON в массив PHP с помощью json_decode(). Затем вы можете получить первые значения X в массиве, используя array_slice($array, 0, 10);.

Используя usort() с оператором космического корабля <=>, вы можете сортировать по свойству Variable1 объектов.

$json = '[{"Variable":"Hello","Variable1":20}, {"Variable":"Hi","Variable1":30},
            {"Variable":"How","Variable1":40}, {"Variable":"Who","Variable1":50},
            {"Variable":"Where","Variable1":60}, {"Variable":"This","Variable1":100},
            {"Variable":"Pork","Variable1":10}, {"Variable":"Creep","Variable1":90},
            {"Variable":"Mega Creeps","Variable1":80}, {"Variable":"LOL","Variable1":0},
            {"Variable":"ROFL","Variable1":0}, {"Variable":"LMAO","Variable1":0},
            {"Variable":"POP","Variable1":0}, {"Variable":"LOVE","Variable1":0},
            {"Variable":"PICK","Variable1":0}, {"Variable":"WHIZ","Variable1":0},
            {"Variable":"BORED","Variable1":0}, {"Variable":"KILLAH","Variable1":0},
            {"Variable":"LOLLING","Variable1":0}, {"Variable":"HALOO  HALOO","Variable1":0}]';

// Get the JSON to a PHP array
$array = json_decode($json);

// Sort the array
usort($array, function($a, $b) {
    return $b->Variable1 <=> $a->Variable1;
});

// Slice it, getting the first 10 elements
$parts = array_slice($array, 0, 10);

// Encode it back to JSON
echo json_encode($parts);

Сначала нам нужно превратить этот JSON в массив:

$array = json_decode($json, true)

Затем нам нужно отсортировать массив, чтобы получить 10 лучших:

function sortByOrder($a, $b) {
    return $a['Variable1'] - $b['Variable1'];
}
usort($array, 'sortByOrder');

Затем мы получаем топ-10:

$array = array_slice($array, 0, 10);

затем мы должны преобразовать обратно в JSON:

echo json_encode($array)

Другие вопросы по теме