Script de PHP para que los estados no funcionen correctamente

No estoy seguro de qué pasa con este guión. Cuando lo ejecuto, solo me da la primera letra de la abreviatura.

No escribí la parte de abreviatura, lo encontré en línea. Las únicas partes del guión que son mías son GET e Includes.

Establecí la variable de estado en un estado y todavía obtengo lo mismo, así que sé que no es mi parte del código. Si alguien sabe cuál es el problema, hágamelo saber.

Aquí está el código actualizado como se sugiere. Sigue teniendo el mismo problema.

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

Ya hay una excelente respuesta a esta pregunta, pero dado que OP aún tiene problemas con esto, aquí hay una solución alternativa. Tenga en cuenta que la matriz $ a2s necesita estar completamente poblada, ya que solo agregué dos estados para mantener esto corto. Guarde lo siguiente en el archivo de su elección (p. Ej .: state.php):

 'Alabama', 'CA'=>'California' ); $array = (strlen($key) == 2 ? $a2s : array_flip($a2s)); return $array[$key]; } ?> 

Para ejecutar lo anterior, escriba uno de los siguientes en su navegador (suponiendo que su archivo sea state.php):

 state.php?state=AL state.php?state=Alabama 

El código está diseñado para funcionar de cualquier manera.

Debería refactorizar sus $states como:

 $states = array( 'Alabama' => 'AL', 'Alaska' => 'AK', [...] ); 

Entonces tu función se convierte en:

 function convert_state($name, $get = 'abbr') { $states = [.. see above ..]; if($get == 'name') { // in this case $name is actually the abbreviation of the state name and you want the full name $states = array_flip($states); } return $states[$name]; } 
    Intereting Posts