Я пытаюсь превратить имена Minecraft в UUID, которые можно преобразовать в «историю имен». У меня есть имя-> UUID часть вниз, но история имен получает ошибку.
Запуская этот код, переменная $ uuid содержит массив всех UUID, которые я пытаюсь преобразовать в историю имен. Затем я пытаюсь запустить все из них через API и, в зависимости от количества прошлых имен, добавленных пользователем, добавить »Значки для обозначения изменений. К сожалению, с тестовыми данными что-то вроде этого:
Foo
Bar (changed to Baz)
это выводит
Array | Array » Array |
, не
Foo | Bar » Baz |
это должно. Я знаю, что, вероятно, получаю массив как объект, но я не знаю, где я буду это делать или как вместо этого получить элемент.
(и вот код)
$uuid_real = json_decode($uuid, TRUE);
foreach($uuid_real as $uuid_totest){
$toadd = json_decode(file_get_contents('https://api.mojang.com/user/profiles/' . $uuid_totest['id'] . '/names'), TRUE);
if(count($toadd)==1){
$results .= $toadd['0'] . " | ";
}elseif(count($toadd)==2){
$results .= $toadd['0'] . " » " . $toadd['1'] . " | ";
}elseif(count($toadd)==3){
$results .= $toadd['0'] . " » " . $toadd['1'] . " » " . $toadd['2'] . " | ";
}
Вот var_dump для $ toadd с некоторыми в настоящее время онлайн-пользователями:
array(1) {
[0]=>
array(1) {
["name"]=>
string(10) "lottie1664"}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(12) "wingmanfoutz"}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(11) "bigfoot2991"}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(13) "mrstampycat05"}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(10) "MEHLAWLARZ"}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(10) "metboy2002"}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(10) "SILVERMAN2"}
}
array(2) {
[0]=>
array(1) {
["name"]=>
string(11) "salesman200"}
[1]=>
array(2) {
["name"]=>
string(8) "Quartzic"["changedToAt"]=>
int(1423055736000)
}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(13) "MercenaryCrow"}
}
array(1) {
[0]=>
array(1) {
["name"]=>
string(8) "fishmeal"}
}
Это потому что $toadd[0]
$toadd[1]
а также $toadd[2]
это массивы, а не строки, пожалуйста, укажите здесь var_dump ($ toadd), и мы можем помочь вам
РЕДАКТИРОВАТЬ:
Итак, как вы можете видеть, нет строки под $toadd[x]
но массив выглядит так:
array(1) {
["name"]=>
string(10) "lottie1664"}
поэтому измените ваш код и используйте:
$toadd[0]['name']
$toadd[1]['name']
$toadd[2]['name']
Других решений пока нет …