Ben PHP büyük bir dizi var.
Bu çizgi kategorileri kullanarak bir tür ayrılır dizeleri içerir:
category1_property
category1_category2_category3
category2_category3_category4_category5
Ben adında bir işlevi var
array get_values($prefix)
Bu, örneğin, belirli bir öneki ile başlayan dizinin tüm değerleri döndürür
get_values("category2_category3_");
Bu fonksiyon foreach () yani basit, öneki ile başlayan tüm dizeleri toplama, tüm dizi boyunca her zaman es
foreach ($my_array as $line)
if (substr($line, 0, strlen($prefix)) == $prefix))
array_push ($result, $line);
Ben yapıyorum kötü hissediyorum performans-bilge, özellikle bu işlem istek başına onlarca kez gerçekleştirildiğini görüyoruz.
Herkes veri depolama bir bütün farklı bir şekilde başvurmak zorunda kalmadan bu hızlandırmak için bir yol biliyor mu?
Bir veritabanını kullanarak hızlı ve zeki olabilir ama ben o önlemek istiyorum. Veriler bir dosya geliyor ve ben bir veritabanına bağlantı bunu yapamam.
Ön ayırma veya çok-boyutlu bir diziye yapıyı bölme ya da bazen bir kategori adı parçaları sorgulamak gerekir, çünkü bir nesne, bir seçenek değildir (örn. "category1_ca *")
Herhangi bir giriş için şimdiden teşekkür ederiz.