-1

この質問のタイトルがわかりません。より良いオプションがある場合は、変更することをためらわないでください。

チームのフル ネームで検索しarray、短い名前を返す必要があります。今、私は次のクレテリアを持っています:

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

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

'Mumbai Indians'を検索すると'MMB'が返されますが、 'Mumbai'だけで検索すると'Mum'が返されます。

$team配列には約 50 のチーム名があります。

「Mumbai」「Mumbai Indians」の検索で常に「MMB」が返されるようにするには、どのようにコーディングすればよいですか?

どんな助けでも本当にありがたいです。

4

2 に答える 2

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
于 2013-06-25T17:21:22.603 に答える
0

部分一致を行う場合は、おそらく foreach ループを使用する必要があります。

$search = 'Mumbai';
$team = '';
foreach($teams as $shortname => $longname) {
    if(strpos($longname,$search) !== false) {
        $team = $shortname;
        break;
    }
}
于 2013-06-25T17:14:03.570 に答える