I am going to eventually use Google Charts using a geochart map (a map of the world) to display campaign contribution data by US state. It will be using the OpenFEC API. I have a complex JSON in my code below. It is converted into an array in my code.
{
"api_version": "1.0",
"pagination": {
"pages": 145,
"count": 2888,
"page": 1,
"per_page": 20
},
"results": [{
"candidate_id": "P00000001",
"contribution_receipt_amount": 152306310.0,
"election_year": 2016,
"contribution_state": "CA"
}, {
"candidate_id": "P00000002",
"contribution_receipt_amount": 114485560.0,
"election_year": 2016,
"contribution_state": "CA"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 101453159.0,
"election_year": 2020,
"contribution_state": "CA"
}, {
"candidate_id": "P00003392",
"contribution_receipt_amount": 93681171.0,
"election_year": 2016,
"contribution_state": "CA"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 91292718.0,
"election_year": 2016,
"contribution_state": "NY"
}, {
"candidate_id": "P00000002",
"contribution_receipt_amount": 83166303.0,
"election_year": 2020,
"contribution_state": "CA"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 75857465.0,
"election_year": 2016,
"contribution_state": "TX"
}, {
"candidate_id": "P00000002",
"contribution_receipt_amount": 73221182.0,
"election_year": 2016,
"contribution_state": "NY"
}, {
"candidate_id": "P00003392",
"contribution_receipt_amount": 64565396.0,
"election_year": 2016,
"contribution_state": "NY"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 58095188.0,
"election_year": 2016,
"contribution_state": "FL"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 53329034.0,
"election_year": 2020,
"contribution_state": "NY"
}, {
"candidate_id": "P00000003",
"contribution_receipt_amount": 49070876.0,
"election_year": 2016,
"contribution_state": "TX"
}, {
"candidate_id": "P00000002",
"contribution_receipt_amount": 46239554.0,
"election_year": 2020,
"contribution_state": "NY"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 36885690.0,
"election_year": 2020,
"contribution_state": "TX"
}, {
"candidate_id": "P00000003",
"contribution_receipt_amount": 36453786.0,
"election_year": 2016,
"contribution_state": "CA"
}, {
"candidate_id": "P00000003",
"contribution_receipt_amount": 32225392.0,
"election_year": 2016,
"contribution_state": "FL"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 31390178.0,
"election_year": 2016,
"contribution_state": "MA"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 29632239.0,
"election_year": 2020,
"contribution_state": "FL"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 28630861.0,
"election_year": 2016,
"contribution_state": "VA"
}, {
"candidate_id": "P00000001",
"contribution_receipt_amount": 28438374.0,
"election_year": 2016,
"contribution_state": "IL"
}]
}
What I do need to access in my array is one inner array at a time inside the key "results
", which would be something like:
{"candidate_id":"P00000001",
"contribution_state":"CA",
"election_year":2016,
"contribution_receipt_amount":152306310.0
}
And I do not need to loop through this. I have to go each individual array in the results key because I will eventually put a marker on a map of the US (I will learn about that later on Google's Geochart example).
What I am trying to do for now is to at least echo the values in this: {"candidate_id":"P00000001","contribution_state":"CA","election_year":2016,"contribution_receipt_amount":152306310.0}
How do I access a line like that? This is a complex array. The only part of the array I knew how to access was: echo $results[0]['api_version'];
<!DOCTYPE HTML>
<html>
<?php
$json = '[{"api_version":"1.0","pagination":{"per_page":20,"page":1,"count":2888,"pages":145},"results":[{"candidate_id":"P00000001","contribution_state":"CA","election_year":2016,"contribution_receipt_amount":152306310.0},{"candidate_id":"P00000002","contribution_state":"CA","election_year":2016,"contribution_receipt_amount":114485560.0},{"candidate_id":"P00000001","contribution_state":"CA","election_year":2020,"contribution_receipt_amount":101453159.0},{"candidate_id":"P00003392","contribution_state":"CA","election_year":2016,"contribution_receipt_amount":93681171.0},{"candidate_id":"P00000001","contribution_state":"NY","election_year":2016,"contribution_receipt_amount":91292718.0},{"candidate_id":"P00000002","contribution_state":"CA","election_year":2020,"contribution_receipt_amount":83166303.0},{"candidate_id":"P00000001","contribution_state":"TX","election_year":2016,"contribution_receipt_amount":75857465.0},{"candidate_id":"P00000002","contribution_state":"NY","election_year":2016,"contribution_receipt_amount":73221182.0},{"candidate_id":"P00003392","contribution_state":"NY","election_year":2016,"contribution_receipt_amount":64565396.0},{"candidate_id":"P00000001","contribution_state":"FL","election_year":2016,"contribution_receipt_amount":58095188.0},{"candidate_id":"P00000001","contribution_state":"NY","election_year":2020,"contribution_receipt_amount":53329034.0},{"candidate_id":"P00000003","contribution_state":"TX","election_year":2016,"contribution_receipt_amount":49070876.0},{"candidate_id":"P00000002","contribution_state":"NY","election_year":2020,"contribution_receipt_amount":46239554.0},{"candidate_id":"P00000001","contribution_state":"TX","election_year":2020,"contribution_receipt_amount":36885690.0},{"candidate_id":"P00000003","contribution_state":"CA","election_year":2016,"contribution_receipt_amount":36453786.0},{"candidate_id":"P00000003","contribution_state":"FL","election_year":2016,"contribution_receipt_amount":32225392.0},{"candidate_id":"P00000001","contribution_state":"MA","election_year":2016,"contribution_receipt_amount":31390178.0},{"candidate_id":"P00000001","contribution_state":"FL","election_year":2020,"contribution_receipt_amount":29632239.0},{"candidate_id":"P00000001","contribution_state":"VA","election_year":2016,"contribution_receipt_amount":28630861.0},{"candidate_id":"P00000001","contribution_state":"IL","election_year":2016,"contribution_receipt_amount":28438374.0}]}]';
$results = json_decode($json, true);
// numeric/associative array access
echo $results[0]['api_version'];
?>
</html>