Получить название города из массива строк PHP - PullRequest
0 голосов
/ 11 июня 2018

У меня есть массив, содержащий несколько строк, каждая строка содержит название города.

Название города иногда существует в начале строки, иногда в середине, а иногда в конце строки.

Вопрос

Как создать новый массив, содержащий только названия городов?

$messagesStrings = [
    'H…cus',
    'Fire reported in the main market in Mogadishu',
    'Funtimes in Ibiza',
    'Lovely shisa in Cairo,Egypt',
    'Blimey! Protests in Tahrir , can't go home',
    'Stuck in traffic in Nairobi',
    'Kathmandu is beatiful',
    'Lovely football at the Bernabau, Madrid, Spain',
    'I hate my government, Athens',
    'Life is full of surprises in Istanbul'
];

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Ну, из-за того, что в строке поиска может быть что угодно, вам потребуется список городов в вашей базе данных, и найти их в самой строке поиска.Если нет ничего подобного, это означало бы, что даже если бы это был настоящий город, его не было бы в базе данных, и поэтому он не был бы там доступным.Но если вы можете найти подобный, вы можете удалить его из строки поиска и получить информацию о городе из базы данных.

0 голосов
/ 11 июня 2018

Попробуйте это:

$messagesStrings = [
    'H…cus',
    'Fire reported in the main market in Mogadishu',
    'Funtimes in Ibiza',
    'Lovely shisa in Cairo,Egypt',
    'Blimey! Protests in Tahrir , can\'t go home',
    'Stuck in traffic in Nairobi',
    'Kathmandu is beatiful',
    'Lovely football at the Bernabau, Madrid, Spain',
    'I hate my government, Athens',
    'Life is full of surprises in Istanbul'
];

$regex = '/Madrid|Spain|Ibiza/';

preg_match_all($regex, implode(' ', $messagesStrings), $matches);

var_dump($matches[0]);

Вывод

array(3) {
  [0]=>
  string(5) "Ibiza"
  [1]=>
  string(6) "Madrid"
  [2]=>
  string(5) "Spain"
}

Живой пример

Repl

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...