Aşağıdaki JSON dizisine sahibim, bu durumda yalnızca üç girdisi var, ancak daha fazlası da olabilir. JSON: Belirli bir değerle giriş yapma
[
{
"id": 45,
"text": "apple"
},
{
"id": 37,
"text": "pear"
},
{
"id": 22,
"text": "strawberry"
}
]
Şimdi benim sorum edilir: Nasıl (örneğin)
id
PHP'de
37
olmak giriş
text
değişken alabilirim? Bunu kolayca elde etmek mümkün mü? Ben (PHP) böyle metni bulmak için döngü için kullanabilirsiniz:
biliyorum ne
<?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'];
}
?>
Ama benim JSON dizisi fazla olduğu gibi, döngünün bir kullanmak istemiyoruz 3 girdiden daha fazla ve çok fazla veriyi kısa sürede talep edersem, for döngüsü her girişten geçene kadar uzun zaman alır. Aynı sonuca ulaşmak için daha etkili bir yol var mı? Birisi bana bunu PHP'de açıklayabilir mi?
Bilgilerinizi almak için herhangi bir döngü kullanmanız gerektiğini düşünüyorum. 'Array_filter() 'işlevini kullanabilirsiniz, ancak bu aynı zamanda bir iç döngü de yapar. – TiMESPLiNTER
Aşağıdaki önerilen çözümlerin çoğunda dahili olarak bir (her) döngü kullanılır, böylece önerilen çözümünüzden çok daha hızlı olmayacaktır. Eğer 'json' verilerini birkaç kez aramanız gerekiyorsa, bunları anahtar olarak 'id' ile 'anahtar' değeri olarak saklamanızı öneririm. Bu zaten birkaç kez önerilmiştir. – Wilt
Veri yapısını kontrol ediyor musunuz Dejori David?Json verilerini oluştururken öğelerin kimliğine göre sıralanabilir misiniz? eğer öyleyse, üzerinde ikili arama uygulayabilirsiniz. – Klaus