Ich habe das folgende JSON-Array, in diesem Fall hat es nur drei Einträge, aber es könnte auch mehr sein.JSON: Eingabe mit einem bestimmten Wert
[
{
"id": 45,
"text": "apple"
},
{
"id": 37,
"text": "pear"
},
{
"id": 22,
"text": "strawberry"
}
]
Nun meine Frage ist: Wie bekomme ich die text
Variable des Eintrags mit (zum Beispiel) id
37
in PHP zu sein? Ist es möglich, so leicht zu kommen?
Was ich weiß:
<?php
$fruits = json_decode(file_get_contents("file.json"), true); // First I decode the file
for ($i = 0; $i < count($fruits); $i++) {
// Using this for loop and if condition, I get the text I need
if ($fruits[$i]['id'] == 37) echo $fruits[$i]['text'];
}
?>
Aber ich will nicht eine for-Schleife verwenden, da meine JSON-Array mehr hat: Ich habe eine for-Schleife für die Suche nach den Text wie folgt aus (in PHP) verwenden könnte als 3 Einträge, und wenn ich viele Daten in kurzer Zeit anfordere, dauert es lange, bis die for-Schleife jeden Eintrag durchläuft. Gibt es einen effektiveren Weg zum selben Ergebnis? Kann mir das jemand in PHP erklären?
Ich denke, Sie müssen jede Art von Schleife verwenden, um Ihre Informationen zu erhalten. Sie könnten 'array_filter()' verwenden, aber dies ist auch eine interne Schleife. – TiMESPLiNTER
Die meisten der unten vorgeschlagenen Lösungen verwenden intern eine (jede) Schleife und sind daher nicht wesentlich schneller als Ihre eigene vorgeschlagene Lösung. Für den Fall, dass Sie die 'json' Daten mehrmals suchen müssen, würde ich vorschlagen, sie als' key' 'value' mit der' id' als Schlüssel zu speichern. Dies wird bereits mehrfach vorgeschlagen. – Wilt
Kontrollieren Sie die Datenstruktur Dejori David?Können Sie Elemente nach ID sortieren, wenn Sie die JSON-Daten erstellen? Wenn dies der Fall ist, können Sie die binäre Suche darauf anwenden. – Klaus