2

私は配列を持っています:

$countryList = array(
  "GB" => "United Kingdom",
  "US" => "United States",
  "AF" => "Afghanistan",
  "AL" => "Albania",
  "DZ" => "Algeria"
);

そしてそれは続く...

国の場所を取得すると、たとえば米国として表示されますが、それ (値) をキー (この場合は「US」) と一致させる必要があります。どうすればいいですか?私が見たすべての例は、値を使用してキーを取得する必要がある場合に、キーを使用して値を取得することに関係していました。最適な出力は、配列内ではなく、単に 'US' になります。

私はエコーを試しarray_keys('United States', $countryList);ましたが、最初のパラメーターを配列にする必要があり、それは米国としてのみ入力されます。可能であれば、それを配列に変更しません。

4

4 に答える 4

5

関数を使用できarray_searchます:

$key = array_search("United States", $countryList); // $key = 'US';
于 2012-08-09T15:47:00.233 に答える
3

array_search指定された値にマップされるキーを提供します。

$countryCode = array_search('United States', $countryList);

これを何度も行う必要がある場合は、 を使用array_flipしてキーを値と交換できます。これにより、フリップの 1 回限りのコストでより高速なルックアップが提供されます。

$countriesByName = array_flip($countryList);
$countryCode = $countriesByName['United States'];
于 2012-08-09T15:45:33.890 に答える
3
<?php
$array = array(
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'fruit3' => 'grape',
    'fruit4' => 'apple',
    'fruit5' => 'apple');

// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
    if ($fruit_name == 'apple') {
        echo key($array).'<br />';
    }
    next($array);
}
?>
于 2012-08-09T15:47:47.643 に答える
1

これを試して:array_keys($countryList, "United States");

于 2012-08-09T15:46:18.383 に答える