J'ai un grand tableau en PHP.Manière rapide d'extraire des portions de tableau?
Il contient des chaînes qui sont divisés en une sorte de catégories en utilisant underscores:
category1_property
category1_category2_category3
category2_category3_category4_category5
J'ai une fonction nommée
array get_values($prefix)
qui renvoie toutes les valeurs du tableau qui commencent par un préfixe donné , par exemple
get_values("category2_category3_");
Cette fonction foreach() es à travers le réseau tout à chaque fois, la collecte de toutes les chaînes qui commencent par le préfixe, soit d'un simple
foreach ($my_array as $line)
if (substr($line, 0, strlen($prefix)) == $prefix))
array_push ($result, $line);
Je me sens mal le faire sage performance, surtout en voyant que cette opération est effectuée des dizaines de fois par demande.
Est-ce que quelqu'un connaît un moyen d'accélérer cela sans avoir à recourir à une toute autre façon de stocker les données?
L'utilisation d'une base de données peut être rapide et intelligente, mais je voudrais éviter cela. Les données proviennent d'un fichier et je ne peux pas le porter sur une base de données.
pré-tri ou diviser la construction en un tableau multidimensionnel ou un objet est pas une option, parce que je dois parfois interroger pour les parties d'un nom de catégorie (par exemple « category1_ca * »)
Merci à avancer pour toute entrée.
Comment est-il maintenant rapide et combien voulez-vous accélérer? – intgr