PHP выбирает хэш с использованием подстановочных знаков - PullRequest
0 голосов
/ 09 апреля 2010

Скажите, у меня есть хэш-карта,

$hash = array('fox' => 'some value',
              'fort' => 'some value 2',
              'fork' => 'some value again);

Я пытаюсь выполнить функцию автозаполнения. Когда пользователь вводит 'fo', я хотел бы получить через ajax 3 ключа из $ hash. Когда пользователь вводит 'for', я хотел бы получить только ключи fort и fork. Это возможно?

Я думал о том, чтобы использовать двоичный поиск, чтобы изолировать ключи с помощью 'f', а не перебором. Затем продолжайте удалять индексы, когда пользователь вводит свой запрос. Есть ли более эффективное решение для этого?

Редактировать: Что касается подстановочных знаков, меня удивило то, что если есть способ сделать $ hash ["f *"], вернуть все индексы, начинающиеся с 'f'.

1 Ответ

5 голосов
/ 09 апреля 2010

Это должно сработать:

$matches = preg_grep('/^for/', array_keys($hash));

и вы получите

$matches[0] = 'fort';
$matches[1] = 'fork'

, из которого вы можете вернуться к исходному массиву $ hash.

...