我有一些PHP代码可以从JSON中获取数据。代码重新编译所有用户名,包括要显示的当前用户名。我的问题是,我怎么才允许它只显示最近的用户名而不是当前用户名?
我正在使用Minecraft API,我可以找到我得到的JSON代码here.
请注意,
_scrunch
是当前的用户名。
这是我的代码,显示了名称:
// Save the uuid
$uuid = $json->id;
// Get the history (using $json->uuid)
$content = file_get_contents('https://api.mojang.com/user/profiles/' . urlencode($uuid) . '/names');
// Decode it
$json = json_decode($content);
$names = array(); // Create a new array
foreach ($json as $name) {
$input = $name->name;
if (!empty($name->changedToAt)) {
// Convert to YYYY-MM-DD HH:MM:SS format
//do
// $input .= ' (changed at ' . $time . ')';
}
$names[] = $input; // Add each "name" value to our array "names"
}
并显示它
<?php echo implode(', ', $names) ;?>
任何帮助都会很棒!谢谢!
答案 0 :(得分:2)
如果您正在寻找删除数组的最后一个元素,array_pop()应该可以解决问题。然后你的foreach循环将查看除最后一个元素之外的所有元素。
$array = [1, 2, 3]; // sample array
$last = array_pop($array); // remove last element of array and store it into a variable => $array = [1, 2]
// do stuff
foreach($array as $element) {
...
}
array_push($array, $last); // push the element to the back of the array => $array = [1, 2, 3]
答案 1 :(得分:1)
在您的循环中,只需检查并排除用户的姓名:
foreach ($json as $name) {
$input = $name->name;
if ($input != _scrunch) {
if (!empty($name->changedToAt)) {
// Convert to YYYY-MM-DD HH:MM:SS format
//do
// $input .= ' (changed at ' . $time . ')';
}
$names[] = $input; // Add each "name" value to our array "names"
}
}
答案 2 :(得分:0)
只需通过count
函数计算数组中返回的数据量,然后通过执行$foo ++;
// Save the uuid
$uuid = $json->id;
// Get the history (using $json->uuid)
$content = file_get_contents('https://api.mojang.com/user/profiles/' . urlencode($uuid) . '/names');
// Decode it
$json = json_decode($content);
$total = count($json); // This counts the amount of items returned
$rank = 0; // Declaring the rank for future use in the foreach loop
$names = array(); // Create a new array
foreach ($json as $name) {
$rank ++;
$input = $name->name;
if ($rank == $total){
// Do something if this is the last row
}
if (!empty($name->changedToAt)) {
// Convert to YYYY-MM-DD HH:MM:SS format
//do
// $input .= ' (changed at ' . $time . ')';
}
$names[] = $input; // Add each "name" value to our array "names"
}