Publi

  • Ordenación en PHP. Ordenar provincias, pero Madrid y Barcelona ponerlas primero.

    En el desarrollo del registro de una página web para España, es normal que la mayoría de las personas vengan de Madrid, Barcelona, Valencia o Sevilla (las provincias podemos cambiarlas).

    El algoritmo para ello, en PHP es el siguiente:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    $provincias = array ("Almería",   "Cádiz",       "Córdoba",  "Granada",     "Huelva",     "Jaén",           "Málaga",
    "Huesca",    "Teruel",      "Zaragoza", "Asturias",    "Cantabria",  "Sevilla",        "Zamora",
    "Ávila",     "Burgos",      "León",     "Palencia",    "Salamanca",  "Segovia",        "Soria",
    "Albacete",  "Ciudad Real", "Cuenca",   "Guadalajara", "Toledo",
    "Barcelona", "Girona",      "Lleida",   "Tarragona",   "Alicante",   "Castellón",      "Valencia",
    "Badajoz",   "Cáceres",     "A Coruña", "Lugo",        "Ourense",    "Pontevedra",     "La Rioja",
    "Murcia",    "Navarra",     "Álava",    "Guipúzcoa",   "Vizcaya",    "Islas Baleares", "Las Palmas",
    "Santa Cruz de Tenerife",   "Ceuta",    "Melilla",     "Valladolid", "Madrid");

    function ordena_provincias ($a, $b)
    {
    static $primeras = array ("Madrid", "Barcelona", "Valencia", "Sevilla");

    $iaa = in_array($a, $primeras);
    $iab = in_array($b, $primeras);

    /* Si las dos provincias están en el array $primeras miramos en qué posición están */
    if ( ($iaa) &amp;&amp; ($iab) )
    {
    $iaa = array_search($a, $primeras);
    $iab = array_search($b, $primeras);

    return ($iaa<$iab)?
    Leer artículo completo