Mam następującą tablicę JSON, w tym przypadku ma tylko trzy wpisy, ale może być ich więcej.JSON: Uzyskanie wpisu o określonej wartości
[
{
"id": 45,
"text": "apple"
},
{
"id": 37,
"text": "pear"
},
{
"id": 22,
"text": "strawberry"
}
]
Teraz moje pytanie brzmi: w jaki sposób mogę uzyskać text
zmienną wpisu z (na przykład) id
będąc 37
w PHP? Czy można to łatwo uzyskać?
Co wiem: można używać dla pętli do znajdowania tekstu jak to (w PHP):
<?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'];
}
?>
Ale nie chcę użyć pętli for, jak moja tablica JSON ma więcej niż 3 wpisy, a jeśli zażądam dużej ilości danych w krótkim czasie, to zajmie to dużo czasu, aż pętla for przejdzie przez każdy wpis. Czy istnieje skuteczniejszy sposób osiągnięcia tego samego wyniku? Czy ktoś może mi to wyjaśnić w PHP?
Myślę, że musisz użyć dowolnego rodzaju pętli, aby uzyskać informacje. Można użyć 'array_filter()', ale to także pętlę wewnętrzną. – TiMESPLiNTER
Większość proponowanych poniżej rozwiązań wykorzystuje wewnętrzną pętlę for (each), więc nie będą one znacznie szybsze niż własne sugerowane rozwiązanie. W przypadku wielokrotnego przeszukiwania danych 'json' sugerowałbym przechowywanie ich jako' klucz' 'wartość' z' id' jako kluczem. Zasugerowano to już kilka razy. – Wilt
Czy kontrolujesz strukturę danych Dejori David?Czy możesz utworzyć elementy posortowane według id podczas tworzenia danych json? jeśli tak, możesz zastosować do niego wyszukiwanie binarne. – Klaus