Я поиграл с поиском текста в больших списках и обнаружил, что использование массива PHP кажется быстрым способом сделать это.
Например, если у вас было множество топонимов и связанных почтовых индексов, выможет прочитать их в массив PHP следующим образом:
$place[‘place name here’] = “postcode”;
Затем, чтобы посмотреть вверх, просто займите место, которое вы хотите найти, и подключите его к массиву:
$postcode_sought = $place[‘place I want to look up’];
Я думал, что мог бы ускорить это с помощью C ++, но, конечно, C ++ не позволяет (насколько я знаю) массивы со строкой в качестве индекса.
Единственный способ, который я могу себе представить, - это создать векторы для места и почтовый индекс и перебрать вектор места в поисках совпадения, но повторные сравнения строк будут длиться вечно, как я и ожидал.Я также экспериментировал с хэшированием текста, но все еще не мог получить его так быстро, как PHP.
Я думаю, что PHP написан на C, поэтому мой вопрос в том, как C удается создать эту функциональность имени строкового индексадля PHP?Я не ищу реальный код или что-то в этом роде, мне просто кажется, что для этого должен быть какой-то фундаментальный метод, и мне просто интересно, есть ли кто-нибудь, кто мог бы кратко это объяснить.
Заранее спасибо.C