从团队名称中删除城市

时间:2017-09-26 22:37:00

标签: php regex preg-replace

我有这些变量:

$cities = [
    'New York City',
    'Arizona State',
    'Arkansas State'
];

$teams = [
    'New York Mets',
    'New York Yankees',
    'Arizona State Sun Devils',
    'Arkansas State Red Wolves'
];

如何将$teams数组格式化为以下内容:

$teams = [
    'Mets',
    'Yankees',
    'Sun Devils',
    'Red Wolves'
];

谢谢!

3 个答案:

答案 0 :(得分:1)

有十几个选项,这里有一个,如果您在城市列表中有任何与您要保留的团队列表中的任何单词相匹配的单词,则无法使用。但是会为所提供的数据工作。

<?php
$cities = [
    'New York City',
    'Arizona State',
    'Arkansas State'
];

$teams = [
    'New York Mets',
    'New York Yankees',
    'Arizona State Sun Devils',
    'Arkansas State Red Wolves'
];

$r=implode($cities,'|');//join the cities
$r=str_replace(' ','|',$r);//separate each word with | for the regular expression

$out=preg_replace('#'.$r.'#','',$teams); // regular expression replace

答案 1 :(得分:0)

使用str_replace函数。例如:

<?php
$teams = [
    'New York Mets',
    'New York Yankees'
];
$out = str_replace('New York', '', $teams);
print_r($out); // Output: Array ( [0] => Mets [1] => Yankees )
?>

答案 2 :(得分:0)

EstimatorSpec可以为您完成工作,因为它也接受数组作为参数。但是,您将遇到str_replace()的问题。如果您无法将其重命名为New York City,或将New York添加为单独的元素,则需要首先将其删除(New York - 后面的行{ {1}}声明),在您将str_replace()提供给用空字符串替换城市的$city之前。

$city

输出:

str_replace()