从PHP字符串数组中获取城市名称

时间:2018-06-11 03:19:55

标签: php laravel-5

我有一个数组包含一些字符串,每个字符串都包含城市名称。

城市名称有时存在于字符串的开头,有时位于字符串的中间,有时位于字符串的末尾。

问题

如何创建仅包含城市名称的新数组?

	function drop_handler(event) {
	// this is part of the ability to drag sleuth images onto the OOC
	// Prevent default behavior (Prevent file from being opened)
		event.preventDefault();
 		var items = event.dataTransfer.items;
		for (var i = 0; i < items.length; i++) {
			var item = items[i];
			if (item.kind === 'string') {
				item.getAsString(function(data) {
				document.getElementById("sleuth").innerHTML = data;
				});
			}
		} 
	}

2 个答案:

答案 0 :(得分:0)

试试这个:

$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

答案 1 :(得分:0)

嗯,由于搜索字符串中可能存在所有内容,您需要数据库中的城市列表,并在搜索字符串本身中找到它们。如果没有类似的东西,那就意味着,即使它是一个真正的城市,它也不会在数据库中,因此它不会在那里进行。但是如果你能找到类似的,你可以从搜索字符串中删除它,并从数据库中获取城市的详细信息。