Una de las mejores cosas de PHP es el hecho de que tiene funciones integradas para cualquier cosa. Una cosa realmente interesante es intentar unir estas funciones para crear nuevas funciones interesantes. Si hay funciones en PHP que realmente le gustan y desea ampliarlas, por así decirlo, puede hacerlo creando las suyas propias. En este episodio, veremos cómo hacerlo. Es una excelente manera de aprender a piratear. Vamos a echar un vistazo a preg_match_all
, array_count_values
y arsort
, para crear un nuevo y temible función llamada preg_count_sort . Vamos a ver.
Las funciones nativas
En primer lugar, echaremos un vistazo rápido a las funciones nativas de PHP que probaremos aquí.
preg_match_all
Esta función acepta un patrón de expresión regular, un sujeto contra el que comparar y el nombre de una variable que contendrá una matriz de coincidencias.
array_count_values
Esta función toma una matriz como entrada, luego cuenta la cantidad de veces que ocurre cada valor en la matriz proporcionada. Luego crea una nueva matriz, siendo las claves de la nueva matriz los valores originales, y los valores ahora contienen un recuento de cuántas veces apareció el valor original en la matriz original.
arsort
Hay una gran cantidad de funciones de matriz en PHP para que pueda encontrar lo que necesite para ordenar. Este ordena la matriz proporcionada en orden inverso y mantiene intactas las claves originales, que necesitamos para nuestra pequeña aplicación aquí.
La función de las funciones
Ahora veremos cómo combinar las tres funciones que mencionamos aquí en una única función interesante. Vamos a llamarlo, la función preg_count_sort .
preg_count_sort
Aquí está el código fuente de la función.
Hablemos de cómo funciona. En primer lugar, simplemente definimos la función usando la function
palabra clave seguida del nombre de la función que deseamos declarar. Tenga en cuenta que esta función toma a pattern
, que será una expresión regular, y a subject
, que serán los datos contra los cuales se ejecutará la expresión regular. A continuación, abrimos una etiqueta de tabla, ya que vamos a poner los resultados de nuestra función en una buena salida tabular. En la siguiente línea utilizamos la primera de las funciones originales de PHP, preg_match_all. Esta función toma el patrón de expresión regular como el primer parámetro, el sujeto con el que comparar como el segundo y el nombre de la matriz para contener cualquier coincidencia como el tercero. Tenga en cuenta que incluimos los delimitadores iniciales y finales para el patrón al incluir la barra diagonal al principio y al final del patrón. De esta manera, cuando proporcionamos la expresión regular en nuestra aplicación, no tenemos que proporcionar también los delimitadores iniciales y finales. array_count_values es la segunda función php nativa que se utiliza. Esto cuenta el número de veces que ocurrió cada coincidencia en la matriz de coincidencias que llenó la función preg_match_all. Una vez que tenemos el recuento de coincidencias, usamos la tercera función nativa de PHP arsort, para ordenar los recuentos de mayor a menor número. El bucle foreach simplemente recorre todas las coincidencias y las coloca en filas y celdas dentro de la tabla general. Por último, seguimos adelante y cerramos la etiqueta de la tabla.
Ponga la nueva función a utilizar
Usaremos este código en una pequeña aplicación de una sola página y lo probaremos. Veámoslo ahora.
fuente preg_count_sort.php
Entonces, ¿qué hace esta pequeña aplicación por nosotros? Bueno, podemos probarlo. Definamos nuestro Asunto y patrón, luego ejecutemos el programa.
Nuestro tema será esta cadena de texto: “Si te gustan los productos de Apple, es posible que tengas un iPad, iPhone o incluso un iMac. Si el MacBook Pro no es lo tuyo, puede que te guste el Lenovo Carbon X1. El iMac de última generación es fantástico, sin embargo, el iMac de hace una década que está en mi escritorio es más un artículo de coleccionista en este momento. Aún no es necesario un nuevo iPad, la versión original con pantalla retina sigue funcionando perfectamente ".
Nuestro patrón será esta expresión: i[A-Z][a-z]*
Aquí está el resultado cuando ejecutamos el programa
¡Muy genial! Cuando ejecutamos la función, encontramos que en el tema iMac ocurrió 3 veces, iPad ocurrió dos veces y iPhone ocurrió una vez. Por supuesto, este es un ejemplo sin sentido, sin embargo, si repasas tus expresiones regulares y proporcionas un tema largo y significativo, puedes descubrir todo tipo de datos interesantes.
Conclusión
Este episodio rápido echó un vistazo a la combinación de funciones PHP para crear la suya. Si usa su imaginación, puede adoptar este enfoque con cualquier número de funciones que acepten y generen datos para crear sus propias soluciones personalizadas.
0 Comentarios