我在PHP中有一個很大的數組。快速提取數組部分的方法?
它包含使用下劃線分割成一種類別的字符串:
category1_property
category1_category2_category3
category2_category3_category4_category5
我有一個名爲
array get_values($prefix)
函數,返回與給定前綴開頭的數組的所有值,例如
get_values("category2_category3_");
此功能的foreach()在整個陣列每次上課,收集以前綴開始的所有字符串,即簡單的
foreach ($my_array as $line)
if (substr($line, 0, strlen($prefix)) == $prefix))
array_push ($result, $line);
我覺得不好做,業績明智的,尤其是看到該操作每個請求執行數十次。
有沒有人知道一種方法來加速而不必訴諸於存儲數據的完全不同的方式?
使用數據庫可能是快速和聰明的,但我想避免這種情況。數據來自文件,我無法將其移植到數據庫。
預排序或構建分割成一個多維數組或一個對象是不是一種選擇,因爲我有時需要查詢類別名稱的部分(例如「category1_ca *」)
由於在提前進行任何輸入。
有多快,現在和你多麼想加快步伐? – intgr 2009-11-21 20:07:22