Я не так уж хорошо знаком с JSON, тем более, пытаясь вытянуть значения из него в PHP, поэтому при попытке сделать это у меня возникает головная боль.
Если бы это не был вложенный / многомерный массив, это было бы простым заданием поиска, копирования и вставки, но проблема, с которой я столкнулся, заключается в том, что я могу извлечь только первый результат из массива. Конечно, мой код немного беспорядок, потому что я пробовал новые методы и взламывал его, пытаясь получить ожидаемый результат, но я не уверен, как обработать данные так, чтобы просто потянуть информация, которую я ищу.
Я очень ценю любые советы / рекомендации, которые вы могли бы дать, чтобы научить меня использовать все результаты, а не только первые. Я уверен, что это что-то простое, я просто не вижу, но я некоторое время занимался этим и, наконец, решил, что буду просить о помощи.
Вот кодирование PHP, которое я используя в данный момент только один результат:
<code>$url = "https://somewhere.com/give-api/v1/donors/?key=***&token=***&number=999";
$data = file_get_contents($url);
$donors = json_decode($data, true);
$count = 0;
$output = array();
foreach ($donors as $donor) {
$spent = substr($donor[$count]['stats']['total_spent'], 0, strpos($donor[$count]['stats']['total_spent'], "."));
if ($spent != 0)
{
$level = check_spent($spent);
// ^ Custom function, just returns a level number based on the $spent value
$output += [$spent, $level, $donor[$count]['info']['first_name'] . " " . $donor[$count]['info']['last_name']];
}
$count++;
}
echo '<pre>';
print_r($output);
echo '
';
Вот анонимная версия данных:
{
"donors": [
{
"info": {
"user_id": "",
"username": "",
"display_name": "",
"donor_id": "8",
"title_prefix": "",
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com"
},
"stats": {
"total_donations": "1",
"total_spent": "40.000000"
},
"address": {
"billing": [
{
"line1": "1234 Some Pl",
"line2": "",
"city": "Somewhere",
"state": "DC",
"country": "US",
"zip": "12345"
}
]
}
},
{
"info": {
"user_id": "",
"username": "",
"display_name": "",
"donor_id": "7",
"title_prefix": "",
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com"
},
"stats": {
"total_donations": "1",
"total_spent": "50.000000"
},
"address": {
"billing": [
{
"line1": "1234 Some Pl",
"line2": "",
"city": "Somewhere",
"state": "DC",
"country": "US",
"zip": "12345"
}
]
}
},
{
"info": {
"user_id": "",
"username": "",
"display_name": "",
"donor_id": "6",
"title_prefix": "",
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com"
},
"stats": {
"total_donations": "1",
"total_spent": "100.000000"
},
"address": {
"billing": [
{
"line1": "1234 Some Pl",
"line2": "",
"city": "Somewhere",
"state": "DC",
"country": "US",
"zip": "12345"
}
]
}
},
{
"info": {
"user_id": "",
"username": "",
"display_name": "",
"donor_id": "5",
"title_prefix": "",
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com"
},
"stats": {
"total_donations": "0",
"total_spent": "0.000000"
},
"address": []
},
{
"info": {
"user_id": "",
"username": "",
"display_name": "",
"donor_id": "4",
"title_prefix": "",
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com"
},
"stats": {
"total_donations": "0",
"total_spent": "0.000000"
},
"address": []
},
{
"info": {
"user_id": "",
"username": "",
"display_name": "",
"donor_id": "3",
"title_prefix": "",
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com"
},
"stats": {
"total_donations": "1",
"total_spent": "50.000000"
},
"address": {
"billing": [
{
"line1": "1234 Some Pl",
"line2": "",
"city": "Somewhere",
"state": "DC",
"country": "US",
"zip": "12345"
}
]
}
},
{
"info": {
"user_id": "",
"username": "",
"display_name": "",
"donor_id": "2",
"title_prefix": "",
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com"
},
"stats": {
"total_donations": "1",
"total_spent": "50.000000"
},
"address": {
"billing": [
{
"line1": "1234 Some Pl",
"line2": "",
"city": "Somewhere",
"state": "DC",
"country": "US",
"zip": "12345"
}
]
}
}
],
"request_speed": 0.0026030540466308594
}