将数组值转换为变量

时间:2013-12-12 21:36:33

标签: php arrays

我知道如何从数组中创建变量吗?

例如:

我试图从下面的数组中回显状态缩写。 $ state值实际上是像纽约这样的州。但是我希望在数组之后回显州的缩写。

$state = $guest_state;
echo convert_state($state);

  function convert_state($key) {
  $a2s = array( 
   'AL'=>'Alabama',
'AK'=>'Alaska',
'AZ'=>'Arizona',
'AR'=>'Arkansas',
'CA'=>'California',
'CO'=>'Colorado',
'CT'=>'Connecticut',
'DE'=>'Delaware',
'DC'=>'District of Columbia',
'FL'=>'Florida',
'GA'=>'Georgia',
'HI'=>'Hawaii',
'ID'=>'Idaho',
'IL'=>'Illinois',
'IN'=>'Indiana',
'IA'=>'Iowa',
'KS'=>'Kansas',
'KY'=>'Kentucky',
'LA'=>'Louisiana',
'ME'=>'Maine',
'MD'=>'Maryland',
'MA'=>'Massachusetts',
'MI'=>'Michigan',
'MN'=>'Minnesota',
'MS'=>'Mississippi',
'MO'=>'Missouri',
'MT'=>'Montana',
'NE'=>'Nebraska',
'NV'=>'Nevada',
'NH'=>'New Hampshire',
'NJ'=>'New Jersey',
'NM'=>'New Mexico',
'NY'=>'New York',
'NC'=>'North Carolina',
'ND'=>'North Dakota',
'OH'=>'Ohio',
'OK'=>'Oklahoma',
'OR'=>'Oregon',
'PA'=>'Pennsylvania',
'RI'=>'Rhode Island',
'SC'=>'South Carolina',
'SD'=>'South Dakota',
'TN'=>'Tennessee',
'TX'=>'Texas',
'UT'=>'Utah',
'VT'=>'Vermont',
'VA'=>'Virginia',
'WA'=>'Washington',
'WV'=>'West Virginia',
'WI'=>'Wisconsin',
'WY'=>'Wyoming',
   );
   $array = (strlen($key) == 2 ? $a2s : array_flip($a2s));
   return $array[$key];
 }

4 个答案:

答案 0 :(得分:0)

尝试:array_filter()

$array; // your array
$needle; // the state you are looking for
$filtered_array = array_filter($array, function ($element) use ($needle) {
    return ($element['state'] === $needle);
});

$matching_keys = array_keys($filtered_array);

答案 1 :(得分:0)

array array_keys ( array $array [, mixed $search_value = NULL [, bool $strict = false ]] )

array_keys()从数组中返回键,数字和字符串。

如果指定了可选的search_value,则仅返回该值的键。否则,返回数组中的所有键。

所以这应该做你的事情:

array_keys($a2s, $key);

答案 2 :(得分:0)

function convert_state($ state){

 $a2s = array() // Lets pretend this is the exact copy of yours, i didn't want to type it out.
 foreach ($a2s as $stateAbbrv => $stateName) {
      if (strtolower($stateName) === strtolower($state)) {
           echo $stateAbbrv;
      }
 }

};

因此,您将迭代$ a2s,直到找到与您的$ stat参数匹配,然后它将输出密钥。

答案 3 :(得分:0)

简单如下:

return array_search($key, $a2s);
相关问题