Ich habe Mühe, diese Arbeit zu machen, und ich hoffe, jemand kann mir einen Schub in die richtige Richtung geben. Ich erstelle ein Dashboard, das Daten aus mehreren Quellen abruft: Google Analytics, Google Trends und so weiter. Damit ein Proof of Concept zu sein, versuche ich, durch die Verwendung einer JSON-Datei mit der folgenden Struktur der verschiedenen Quellen zu emulieren:Fange JSON-Daten nach spezifischem Wert
{
"data":
[
{
"source":"google analytics",
"data":
[
{
"month":"jan",
"visitors":"593"
},
{
...
}
]
},
{
"source":"google trends",
"keywords":
[
{
"value":"keyword 1",
"data":
[
{
"month":"dec",
"popularity":"10"
},
{
...
}
]
},
{
"value":"keyword 2",
"data": ...
}
]
}
]
}
Next Ich habe eine Dropdown-Liste mit Keywords aus einer MySQL-Datenbank-Abfrage. Wenn ein Benutzer ein Schlüsselwort aus dieser Liste auswählt, möchte ich die Daten aus der JSON-Datei anzeigen, die diesem bestimmten Schlüsselwort entsprechen.
Zum Beispiel, wenn ein Benutzer „keyword 1“ aus der Dropdown-Liste auswählt, müssen die Werte „Dec“ und „100“ geholt werden, die Rechte von Chart.js
jetzt verwendet wird, dann ich haben folgendes Stück Code:
$dataFile = json_decode(file_get_contents($src));
$data = $dataFile->data[1]->keywords[0]; // Google Trends
foreach ($data->results as $result) {
echo "<li><p>" . $result->month . "</p></li>";
echo "<li><p>" . $result->popularity . "</p></li>";
}
Diese die richtigen Daten nicht zeigt, die Monate und die Popularität Partituren zu sein, aber offensichtlich nur für das Schlüsselwort unter Verwendung des Array-Wertes definiert. Wie kann ich diese Show-Daten für das ausgewählte Keyword machen (welches über GET gepostet wird)?
Was ich versuche zu tun ist:
$dataFile = json_decode(file_get_contents($src));
$data = $dataFile->data["google trends"]->keywords[$selectedKeyword];
foreach ($data->results as $result) {
echo "<li><p>" . $result->month . "</p></li>";
echo "<li><p>" . $result->popularity . "</p></li>";
}
Ich bin mir bewusst, der zweite Parameter von json_decode, die es ein assoziatives Array macht, aber ich bin nicht sicher, wie ich es verwenden können, um zu erreichen was ich versuche ..
Dies zu tun, ist zur Zeit das Ergebnis der Daten $:
object(stdClass)#10 (2) {
["value"]=>
string(10) "keyword 1"
["data"]=>
array(7) {
[0]=>
object(stdClass)#11 (2) {
["month"]=>
string(3) "dec"
["popularity"]=>
string(2) "10"
}
[1]=>
object(stdClass)#12 (2) {
["month"]=>
string(3) "jan"
["popularity"]=>
string(1) "5"
}
[2]=>
object(stdClass)#13 (2) {
["month"]=>
string(3) "feb"
["popularity"]=>
string(1) "8"
}
[3]=>
object(stdClass)#14 (2) {
["month"]=>
string(3) "mar"
["popularity"]=>
string(1) "5"
}
[4]=>
object(stdClass)#15 (2) {
["month"]=>
string(3) "apr"
["popularity"]=>
string(2) "10"
}
[5]=>
object(stdClass)#16 (2) {
["month"]=>
string(3) "mei"
["popularity"]=>
string(2) "20"
}
[6]=>
object(stdClass)#17 (2) {
["month"]=>
string(3) "jun"
["popularity"]=>
string(2) "10"
}
}
}
Diese Frage scheint ein wenig zu vieldeutig. Es ist nicht klar, was nicht funktioniert oder warum Sie javascript/jquery getaggt haben. Bitte klären Sie. – Twisty
Können Sie bitte eine 'var_export (data);' und aktualisieren Sie Ihre Post mit den Ergebnissen? – mkaatman
@mkaatman Ich habe meine Antwort aktualisiert. –