数组搜索返回类似的数组键

时间:2013-06-25 17:10:28

标签: php arrays

我不确定这个问题的标题是什么,如果你有更好的选择,请不要犹豫改变。

我需要使用团队的全名搜索array并返回短名称。现在我有以下的creteria:

$teams = array('MMB' => 'Mumbai', 'MMB' => 'Mumbai Indians');

$Vteam = (array_search($vteam, $teams, true) !== false) ? array_search($vteam, $teams) : substr($vteam, 0, 3);

当我搜索'孟买印第安人'时,会返回'MMB',但当我单独搜索'Mumbai'时,它会返回的 '妈妈'即可。

我在$team数组中有大约50个团队名称。

我应该如何编码,以便在'孟买''孟买印第安人'搜索时,它会返回'MMB'

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:2)

如果您自己创建$teams数组,请使用值的数组正确形成它!

$teams = array('MMB' => array( 'Mumbai', 'Mumbai Indians'));

但是,如果要查找短名称,请反转此设计:

$teams = array( 'Mumbai' => 'MMB', 'Mumbai Indians' => 'MMB');

现在,如果您想知道Mumbai的短名称,只需在其名称上索引数组:

echo $teams['Mumbai']; // Output: MMB
echo $teams['Mumbai Indians']; // Output: MMB

答案 1 :(得分:0)

如果你正在进行部分匹配,你可能需要使用foreach循环:

$search = 'Mumbai';
$team = '';
foreach($teams as $shortname => $longname) {
    if(strpos($longname,$search) !== false) {
        $team = $shortname;
        break;
    }
}