Выбрать ключи массива, значения которых начинается с определенного текста?

Туплю.
Ситуация - есть массив:
$result = array(
          'Краны шаровые прямоходные',
          'Шаровые краны 2х кольцевые',
          'Краны шаровые тупоугловые',
          'Краны мелкозубчатые с изгибом',
          'Краны прямокруглые с изгибами',
        );

Есть строка шаблон:
$index_search = 'Краны шаровые';
Подскажите, как отсортировать массив $result исходя из $index_search . Т.е. в соответствии должно проверяться сначала точное совпадение значение массива с $index_search с учетом того, что значение начинается именно с $index_search, потом частичное, а потом уже все остальное. Т.е после сортировки массив должен принять такой вид:
$result = array(
          'Краны шаровые прямоходные',
          'Краны шаровые тупоугловые',
          'Краны мелкозубчатые с изгибом',
          'Краны прямокруглые с изгибами',
          'Шаровые краны 2х кольцевые',
        );
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
этим занимаются поисковые движки.
sphinxsearch, elasticsearch
Ответ написан
Комментировать
Но ведь $result приходит из базы данных. Там и сортировать:
"select column from table order by instr(column, 'Краны шаровые')"
Ответ написан
Комментировать
IIISpikerIII
@IIISpikerIII
Если задача должна решиться на стороне php то можете посмотреть similar_text, построив индексы по процентному совпадению поисковой фразы со значением массива. Останется отсортировать массив по индексу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы