如何在php中使用json获取数组的前10个值

way*_*tra 5 php json

这是我的 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}
Run Code Online (Sandbox Code Playgroud)

如何仅获取从最高 Variable1 编号到最低编号的前 10 个?但将以相同的格式传递 JSON 文件。

Qir*_*rel 2

PHP 需要使用数组,因此请使用 .json 将 JSON 转换为 PHP 数组json_decode()。然后您可以使用 获取数组中的第 X 个值array_slice($array, 0, 10);

usort()与 spaceshipoperator一起使用<=>,您可以对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);
Run Code Online (Sandbox Code Playgroud)