Ejemplos funciones con arrays


function calcetin($tabla) {
    $res = [];
    foreach ($tabla as $clave => $valor) {
        $res[$valor] = $clave;
    }
    return $res;
}

$t = ["a" => 1, "b" => 3, "c" => 1];
muestraTabla($t);
$c = calcetin($t);
muestraTabla($c);

function contar($tabla, $valor) {
    $cont = 0;
    foreach ($tabla as $v) {
        if ($valor == $v) {
            $cont++;
        }
    }
    return $cont;
}
echo esUnico1($t);
function esUnico1($tabla) {
    foreach ($tabla as $valor) {
        if (contar($tabla, $valor) > 1) {
            return false;
        }
    }
    return true;
}
function esUnico2($tabla) {
    $t = array_count_values($tabla);
    foreach ($t as $valor) {
        if ($valor > 1) {
            return false;
        }
    }
    return true;
}
function esUnico3($tabla){
    sort($tabla);
    for($i=1;$i<count($tabla);$i++){
        if ($tabla[$i]==$tabla[$i-1]){
            return false;
        }
    }
    return true;
}
function esUnico4($tabla){
    return count($tabla)==count(array_unique($tabla));
}

Funciones array (I)

Número de elementos:

count()

Poner y quitar elementos:

Del final:

array_pop()

array_push()

Del principio:

array_shift()

array_unshift()

Ejemplos:

function muestraTabla($tabla) {
 echo "<pre>";
 print_r($tabla);
 echo "</pre>";
 }

 $tabla = array(1, 2, 3, 4, 5);
 $tabla = array("a" => 1,
 "b" => 2,
 "c" => 3,
 "d" => 4,
 "e" => 5,
 );
 muestraTabla($tabla);
 array_pop($tabla);
 muestraTabla($tabla);
 array_push($tabla, 99);
 muestraTabla($tabla);
 array_shift($tabla);
 muestraTabla($tabla);
 array_unshift($tabla, 200);
 muestraTabla($tabla);

Funciones Array (V)

Funciones de búsqueda en arrays:

in_array()

array_search()

array_key_exists()

Ejemplos:

 $tabla=range("a","j");
 
 if (in_array("b",$tabla)){
 echo "Está la b<br/>";
 }
 if (in_array("w",$tabla)){
 echo "Está la w<br/>";
 }
 
 $pos= array_search("b", $tabla);
 echo "|".$pos."|<br/>";
 $pos= array_search("w", $tabla);
 echo "|".$pos."|<br/>";
 
 $asociativa=array("a"=>1,"b"=>2,"c"=>3,"d"=>4,);
 $pos= array_search(3, $asociativa);
 echo "|".$pos."|<br/>";
 
 if (array_key_exists("d",$asociativa)){
 echo "Existe la clave d<br/>";
 }

Ordenar arrays

Nombre de la función Ordena por Mantiene asociación con las key Orden de la clasificación Funciones relacionadas
array_multisort() valor sí si es asociativa, no si es númerica primer array u opciones de clasificación array_walk()
asort() valor menor a mayor arsort()
arsort() valor mayor a menor asort()
krsort() key mayor a menor ksort()
ksort() key menor a mayor asort()
natcasesort() valores natural, insensible a mayúsculas y minúsculas natsort()
natsort() valor natural natcasesort()
rsort() valor no mayor a menor sort()
shuffle() valor no aleatorio array_rand()
sort() valor no menor a mayor rsort()
uasort() valor definido por el usuario uksort()
uksort() key definido por el usuario uasort()
usort() valor no definido por el usuario uasort()

Funciones Array (III)

Funciones para crear arrays con rangos o valores:

range()

array_fill()

array_pad()

Ejemplos:

 function muestraTabla($tabla) {
 echo "<pre>";
 print_r($tabla);
 echo "</pre>";
 }

 $a = range(1, 5);
 muestraTabla($a);
 $b = range(1, 100, 10);
 muestraTabla($b);
 $c = range('a', 'e');
 muestraTabla($c);

 $d = array_fill(2, 10, "pepe");
 muestraTabla($d);


 $input = array(12, 10, 9);

 $result = array_pad($input, 5, 0);
 // el resultado es array(12, 10, 9, 0, 0)
 muestraTabla($result);
 $result = array_pad($input, -7, 4);
 // el resultado es array(4, 4, 4, 4, 12, 10, 9)
 muestraTabla($result);

 $result = array_pad($input, 2, "noop");
 // sin relleno
 muestraTabla($result);

Funciones Array (IV)

Obtener partes de un array y modificarlo:

array_slice()

array_splice()

Ejemplos:

 function muestraTabla($tabla) {
 echo "<pre>";
 print_r($tabla);
 echo "</pre>";
 }

 $entrada = array("rojo", "verde", "azul", "amarillo");
 array_splice($entrada, 2);
 // $entrada ahora es array("rojo", "verde")
 muestraTabla($entrada);
 $entrada = array("rojo", "verde", "azul", "amarillo");
 array_splice($entrada, 2,1);
 // $entrada ahora es array("rojo", "verde","amarillo")
 muestraTabla($entrada);
 $entrada = array("rojo", "verde", "azul", "amarillo");
 array_splice($entrada, 1, -1);
 // $entrada ahora es array("rojo", "amarillo")
 muestraTabla($entrada);

 $entrada = array("rojo", "verde", "azul", "amarillo");
 $foo=array_splice($entrada, 1, count($entrada), "naranja");
 // $entrada ahora es array("rojo", "naranja")
 //$foo es array("verde","azul","amarillo")
 muestraTabla($entrada);
 muestraTabla($foo);

 $entrada = array("rojo", "verde", "azul", "amarillo");
 array_splice($entrada, -1, 1, array("negro", "granate"));
 // $entrada ahora es array("rojo", "verde",
 // "azul", "negro", "granate")
 muestraTabla($entrada);

 $entrada = array("rojo", "verde", "azul", "amarillo");
 array_splice($entrada, 3, 0, "púrpura");
 // $entrada ahora es array("rojo", "verde",
 // "azul", "púrpura", "amarillo");
 muestraTabla($entrada);
 
 $tabla=range("a","j");
 $a=array_slice($tabla,3);
 muestraTabla($a);
 $a=array_slice($tabla,3,2);
 muestraTabla($a);
 $a=array_slice($tabla,-3);
 muestraTabla($a);
 $a=array_slice($tabla,-3,1);
 muestraTabla($a);
 $a=array_slice($tabla,-4,-2);
 muestraTabla($a);

Funciones array (II)

Pasar de cadena a array y viceversa:

explode()

implode()

str_split()

Ejemplos:

 function muestraTabla($tabla) {
 echo "<pre>";
 print_r($tabla);
 echo "</pre>";
 }

 $cadena = "hola que tal estamos";
 $tabla = explode(' ', $cadena);
 muestraTabla($tabla);
 $lista = "jamon,pollo,bistec,fuet";
 $carne = explode(",", $lista);
 muestraTabla($carne);
 $letras = str_split($lista);
 muestraTabla($letras);
 
 echo implode('-',$tabla)."<br/>";
 echo implode('***-***',$carne)."<br/>";
 echo implode('.',$letras)."<br/>";

Ejemplo de función levenheist


echo masParecida("tomato", ["naranja","tomate","platano","morcilla"]);
echo masParecida("marnaja", ["naranja","tomate","platano","morcilla"]);
function masParecida($entrada, $palabras) {
// no se ha encontrado la distancia más corta, aun
$distancia = -1;
$cercana = "";
// bucle a través de las palabras para encontrar la más cercana
foreach ($palabras as $palabra) {
// calcula la distancia entre la palabra de entrada y la palabra actual
$lev = levenshtein($entrada, $palabra);
// verifica por una coincidencia exacta
if ($lev == 0) {
// la palabra más cercana es esta (coincidencia exacta)
return $palabra;
}
// si esta distancia es menor que la siguiente distancia
// más corta o si una siguiente palabra más corta aun no se ha encontrado
if ($lev <= $distancia || $distancia < 0) {
$cercana = $palabra;
$distancia = $lev;
}
}
return $cercana;
}

Funciones de string en PHP categorizadas

Mayúsculas/Minúsculas (5)

  • ucfirst — Convierte el primer caracter de una cadena a mayúsculas
  • ucwords — Convierte a mayúsculas el primer caracter de cada palabra de una cadena
  • lcfirst — Pasa a minúscula el primer caracter de un string
  • strtolower — Convierte una cadena a minúsculas
  • strtoupper — Convierte un string a mayúsculas

Limpiar cadena (4)

  • trim — Elimina espacio en blanco (u otro tipo de caracteres) del inicio y el final de la cadena
  • ltrim — Retira espacios en blanco (u otros caracteres) del inicio de un string
  • rtrim — Retira los espacios en blanco (u otros caracteres) del final de un string
  • chop — Alias de rtrim

Convertir en array (7)

  • explode — Divide un string en varios string
  • str_split — Convierte un string en un array
  • implode — Une elementos de un array en un string
  • join — Alias de implode
  • strtok — Tokeniza string
  • chunk_split — Divide una cadena en trozos más pequeños
  • str_getcsv — Convierte un string con formato CSV a un array

Buscar cadenas (10)

  • strpos — Encuentra la posición de la primera ocurrencia de un substring en un string
  • strripos — Encuentra la posición de la última aparición de un substring insensible a mayúsculas y minúsculas en un string
  • strrpos — Encuentra la posición de la última aparición de un substring en un string
  • stripos — Encuentra la posición de la primera aparición de un substring en un string sin considerar mayúsculas ni minúsculas
  • strstr — Encuentra la primera aparición de un string
  • stristr — strstr insensible a mayúsculas y minúsculas
  • strchr — Alias de strstr
  • strrchr — Encuentra la última aparición de un caracter en un string
  • strpbrk — Buscar una cadena por cualquiera de los elementos de un conjunto de caracteres
  • strspn — Averigua la longitud del segmento inicial de un string que consista únicamente en caracteres contenidos dentro de una máscara dada.

Funciones de información y manipulación de cadenas (14)

  • strlen — Obtiene la longitud de un string
  • str_ireplace — Versión insensible a mayúsculas y minúsculas de str_replace
  • str_pad — Rellena un string hasta una longitud determinada con otro string
  • str_repeat — Repite un string
  • str_replace — Reemplaza todas las apariciones del string buscado con el string de reemplazo
  • str_shuffle — Reordena aleatoriamente una cadena
  • strrev — Invierte una string
  • substr_count — Cuenta el número de apariciones del substring
  • substr_replace — Reemplaza el texto dentro de una porción de un string
  • substr — Devuelve parte de una cadena
  • chr — Devuelve un caracter específico
  • ord — devuelve el valor ASCII de un caracter
  • strtr — Convierte caracteres o reemplaza substrings
  • wordwrap — Ajusta un string hasta un número dado de caracteres

Contar y formatos (7)

  • count_chars — Devuelve información sobre los caracteres usados en una cadena
  • localeconv — Obtener información sobre el formato numérico
  • money_format — Da formato a un número como un string de moneda
  • nl_langinfo — Consulta información sobre el idioma y la configuración regional
  • number_format — Formatear un número con los millares agrupados
  • str_word_count — Devuelve información sobre las palabras utilizadas en un string
  • setlocale — Establecer la información del localismo

Escapar/convertir cadenas (13)

  • addcslashes — Escapa una cadena al estilo de C
  • addslashes — Escapa un string con barras invertidas
  • html_entity_decode — Convierte todas las entidades HTML a sus caracteres correspondientes
  • htmlentities — Convierte todos los caracteres aplicables a entidades HTML
  • htmlspecialchars_decode — Convierte entidades HTML especiales de nuevo en caracteres
  • htmlspecialchars — Convierte caracteres especiales en entidades HTML
  • get_html_translation_table — Devuelve la tabla de traducción utilizada por htmlspecialchars y htmlentities
  • stripslashes — Quita las barras de un string con comillas escapadas
  • strip_tags — Retira las etiquetas HTML y PHP de un string
  • stripcslashes — Desmarca la cadena marcada con addcslashes
  • nl2br — Inserta saltos de línea HTML antes de todas las nuevas líneas de un string
  • quotemeta — Escapa meta caracteres
  • parse_str — Convierte el string en variables

Mostrar por pantalla u otros dispositivos (9)

  • echo — Muestra una o más cadenas
  • fprintf — Escribir una cadena con formato a una secuencia
  • print — Mostrar una cadena
  • printf — Imprimir una cadena con formato
  • sprintf — Devuelve un string formateado
  • vfprintf — Escribe un string con formato en un flujo
  • vprintf — Muestra una cadena con formato
  • vsprintf — Devuelve una cadena con formato
  • sscanf — Interpreta un string de entrada de acuerdo con un formato

Funciones de encriptación (9)

  • crc32 — Calcula el polinomio crc32 de una cadena
  • crypt — Hash de cadenas de un sólo sentido
  • md5_file — Calcula el resumen criptográfico md5 de un archivo dado
  • md5 — Calcula el ‘hash’ md5 de un string
  • sha1_file — Calcula el hash sha1 de un archivo
  • sha1 — Calcula el ‘hash’ sha1 de un string
  • str_rot13 — Realizar la transformación rot13 sobre una cadena
  • convert_uudecode — Descodifica una cadena codificada mediante uuencode
  • convert_uuencode — Codificar mediante uuencode una cadena

Similaridad de cadenas (4)

  • levenshtein — Cálculo de la distancia Levenshtein entre dos strings
  • similar_text — Calcula la similitud entre dos strings
  • soundex — Calcula la clave soundex de un string
  • metaphone — Calcula la clave metaphone de un string

Comparación de cadenas (9)

  • strcasecmp — Comparación de string segura a nivel binario e insensible a mayúsculas y minúsculas
  • strcmp — Comparación de string segura a nivel binario
  • strcoll — Comparación de cadenas basada en la localidad
  • strcspn — Averiguar la longitud del segmento inicial que no coincida con una máscara
  • strnatcasecmp — Comparación de strings, insensible a mayúsculas y minúsculas, utilizando un algoritmo de “orden natural”
  • strnatcmp — Comparación de strings utilizando un algoritmo de “orden natural”
  • strncasecmp — Comparación de los primeros n caracteres de cadenas, segura con material binario e insensible a mayúsculas y minúsculas
  • strncmp — Comparación segura a nivel binario de los primeros n caracteres entre strings
  • substr_compare — Comparación segura a nivel binario de dos o más strings desde un índice hasta una longitud de caracteres dada

Otros alfabetos y hexadecimal (7)

  • hex2bin — Decodifica una cadena binaria codificada hexadecimalmente
  • bin2hex — Convierte datos binarios en su representación hexadecimal
  • hebrev — Convierte texto hebreo lógico a texto visual
  • hebrevc — Convertir texto de hebreo lógico a texto visual con conversión de línea nueva
  • convert_cyr_string — Convierte de un juego de caracteres cirílico a otro juego de caracteres cirílico
  • quoted_printable_decode — Convierte un string quoted-printable en un string de 8 bits
  • quoted_printable_encode — Convierte un string de 8 bits en un string quoted-printable

Funciones de cadena en PHP

Buscar una subcadena dentro de otra. Ejemplo ‘¿Tiene una cadena la @?’:

if (strpos($_POST['email'], '@') === false) {
print 'No hay arroba (@)';
}

Ponemos ‘===’ porque si la arroba está en la posición 0 se entiende como false.

El siguiente código nos devuelve el número de apariciones de una cadena en otra:

function contarCadena($pajar, $aguja) {
    $pos = strpos($pajar, $aguja);
    $cont = 0;
    while ($pos !== false) {
        $cont++;
        $pos = strpos($pajar, $aguja, $pos + 1);
    }
    return $cont;
}

Obtener subcadenas de una cadena. Ejemplo: ‘Obtener los cuatro primeros caracteres del código’.

$substring = substr($string,$start,$length);
$codigo='ABCD123456';
$parte=substr($codigo,0,4); //$parte='ABCD'
$parte=substr($codigo,4,4); //$parte='1234'
$parte=substr($codigo,4); //$parte='123456'
$parte=substr($codigo,-4); //$parte='3456'

Ejercicio: dada una cadena obtener otra con los dos primeros caracteres y los dos últimos.

Mayúsculas y minúsculas:

print ucfirst("how do you do today?"); //Primera letra
print ucwords("the prince of wales"); //primera letra de cada palabra
print strtoupper("i'm not yelling!"); //mayúsculas
print strtolower('<a href="one.php">one</a>'); // minúsculas

Partir cadenas con explode (por separador):

$cadena="hola que tal";
$palabras=explode($cadena); //Array ( [0] => hola [1] => que [2] => tal )
echo implode("-",$palabras);//hola-que-tal

Reemplazar una cadena por otra:

echo str_replace("a", "#", "hola que tal"); //hol# que t#l

Repetir una cadena:

echo str_repeat("|-|",6); //|-||-||-||-||-||-|