Contactos

Cómo verificar la presencia de un valor en la matriz PHP. PHP: Array_search - Búsqueda rápida por la búsqueda de la matriz PHP para una matriz por valor

Se requiere la búsqueda de valores en la matriz en casi todas las aplicaciones de PHP, un script para que los datos funcionan con datos, para los cuales hay muchas formas y funciones especiales. Dependiendo de la tarea y el tipo de búsqueda, debe usar ciertas herramientas, dadas sus características, la velocidad de ejecución y la conveniencia en uso. A continuación, nos familiaricemos con las funciones de PHP de búsqueda de elementos en matriz, posibles diseños y métodos, así como averiguar qué método es el más rápido.

Funciones para la búsqueda en la matriz.:
array_search. - Se utiliza para buscar valores en la matriz. Si es bueno, devuelve la clave del valor deseado si no se encuentra nada, devuelve falso. Antes de la versión PHP 4.2.0, Array_Search (), con falla, null devuelto, no falso.

Sintaxis de características de Array_Search mixta (aguja mixta, matriz de pajar [, bool estricto]).

foreach (Array_Expression como $ valor)
Declaración
Foreach (Array_Expression como $ KEY \u003d\u003e $ valor)
Declaración

Un ejemplo de usar la función FEAACH para buscar un elemento de matriz, devuelve VERDADERO cuando sea exitoso

Sintaxis de construcción
Mientras (expr)
Declaración

Devuelve el caso de un elemento de matriz cuando tiene éxito

De la tabla de mediciones anteriores se puede ver que la función array_search., muestra el mejor resultado al buscar pequeñas y grandes matrices. Al mismo tiempo, el tiempo de búsqueda para el conjunto de ciclos aumenta significativamente dependiendo del tamaño de la matriz.

(PHP 4\u003e \u003d 4.0.5, PHP 5)

array_search: busca este valor en la matriz y devuelve la tecla correspondiente si es buena suerte

Descripción

mezclado. array_search. (Aguja mixta, array pajar [, bool estricto])

Buscando en el pajar el valor de la aguja y devuelva la tecla, si es así, está presente en la matriz, Falso de lo contrario.

Comentario: Si la aguja es una cadena, se realiza una comparación dependiente del registro.

Comentario: A PHP 4.2.0, array_search () Si es posible, devuelto NULO en lugar de Falso .

Si pasas el valor Cierto. Como un tercer parámetro estricto opcional, función array_search () También revise la aguja de tipo en la matriz de pajar.

Si la aguja está presente en el pajar más de una vez, la primera clave encontrada será devuelta. Para devolver las teclas para todos los valores encontrados, use la función array_Keys () Con un parámetro de búsqueda opcional_value.


Ejemplo 1. Ejemplo de uso array_search ()

$ Array \u003d Array (0 \u003d\u003e "azul", 1 \u003d\u003e "rojo", 2 \u003d\u003e 0x000000, 3 \u003d\u003e "verde", 4 \u003d\u003e "rojo"); $ Key \u003d Array_search ("Red", $ Array ) // $ clave \u003d 1;
$ KEY \u003d Array_Search ("verde", $ matriz); // $ clave \u003d 2; (0x000000 \u003d\u003d 0 \u003d\u003d "verde")
$ KEY \u003d Array_Search ("Verde", $ Array, VERDADERO); // $ clave \u003d 3;
?>
Atención

Esta característica puede devolverse como un valor lógico. Falso y no relacionado con el valor de tipo lógico que se le da a Falso , por ejemplo, 0 o "". Para obtener más información, consulte la sección Tipo Boulev. Use la instrucción \u003d\u003d\u003d para verificar el valor devuelto por esta función.

Una de las operaciones principales al trabajar con matrices es una búsqueda de un valor específico. Para este propósito, la función PHP Array_Search (). Es capaz de procesar colecciones de unidades unidimensionales y asociativas, devolviendo la clave del valor deseado si se encuentra en la matriz.

Sintaxis

La descripción formalizada de la función Array_Search () en PHP es la siguiente:

Array_Search mixta (valor mixto, matriz $ colección [, bool estricto])

Parámetros de entrada:

  • $ Colección: una matriz en la que se realizará la búsqueda;
  • el valor es el valor deseado de cualquier tipo;
  • estricto es un indicador lógico opcional que establece un estricto mecanismo de comparación basado en tipos.

Mecanismo de trabajo

La función PHP Array_Search () compara alternativamente el valor con todos los valores en la matriz de recolección. De forma predeterminada, la comparación se lleva a cabo sin tener en cuenta los tipos de operandos. Esta configuración se puede cambiar configurando el valor de True para la bandera. La comparación de las cadenas se lleva a cabo con respecto al registro.

Cuando se detecta la coincidencia, se devuelve la clave correspondiente al elemento encontrado, y el funcionamiento de la función se detiene. Por lo tanto, es imposible detectar la entrada múltiple del valor deseado en una matriz.

Si no se han encontrado coincidencias, la función devolverá el valor booleano FALSO.

Verifique que el resultado devuelto debe estar usando un operador de igualdad estricto (\u003d\u003d\u003d). Esto es importante, ya que la función puede devolver un valor que se le da a FALSO, por ejemplo, 0 o una cadena vacía.

Ejemplos de uso

Ejemplo 1. Cuando transmita una matriz multidimensional a la función PHP Array_Search (), el resultado del trabajo es la clave del elemento deseado.

"Invierno", "temporada2" \u003d\u003e "primavera", "temporada3" \u003d\u003e "verano", "temporada4" \u003d\u003e "otoño"); $ Result1 \u003d Array_Search ("Invierno", $ Array); $ Result2 \u003d Array_Search ("Verano", $ Array); $ Result3 \u003d Array_Search ("Abril", $ Array); \u003e\u003e

En este ejemplo, la variable de $ Result1 obtendrá "Season1", $ Result2 será "Temporada3", y se le asignará a $ Result3 un valor booleano Falso, ya que la cadena "Abril" no ocurre en la matriz de origen.

Ejemplo 2. La función PHP Array_Search () también puede procesar una matriz unidimensional, contando sus claves en el orden de los índices numéricos.

La variable de resultado de $ $ se asignará a 1, de acuerdo con el índice de elementos del cazador en la matriz de Array $.

Ejemplo 3. Posible error al analizar el resultado.

"Washington", 1 \u003d\u003e "Adams", 2 \u003d\u003e "Jefferson", 3 \u003d\u003e "Madison", 4 \u003d\u003e "Monroe"); $ Result \u003d Array_Search ("Washington", $ presidentes); Si (! $ Resultado) (Echo "G. Washington no fue el primer presidente de los Estados Unidos";)?\u003e

Entonces, sin verificar el resultado resultante de la igualdad estricta, puede obtener un mensaje inesperado que George Washington no fue el primer presidente de los Estados Unidos.

Ejemplo 4. Solo se devuelve la clave de la primera coincidencia detectada.

A pesar de que el valor deseado se encuentra en la matriz tres veces, la función devolverá solo el primer resultado - 0. Para buscar múltiples coincidencias, se recomienda usar la función PHP Array_Keys ().

La programación es sintaxis y semántica. El primero está determinado por las reglas del lenguaje, la segunda: la experiencia del desarrollador. Con respecto a las matrices, el desarrollador puede objetar la sintaxis de la semántica. Este no es un objeto, pero ya no es una matriz en una comprensión tradicional. PHP hace posible crear matrices de diferentes tipos variables, incluidos los mismos. Un elemento de la matriz puede ser una función, es decir, la capacidad de cargar la matriz con un algoritmo real, un significado real.

La sintaxis es estable, pero cambia de la versión a la versión y no siempre puede ser compatible incluso de abajo hacia arriba. La portabilidad de los programas está bien olvidada por el logro del siglo pasado. La semántica se desarrolla y siempre se puede aplicar no solo en ninguna versión de ningún idioma; Era una tradición para usar estructuras de sintaxis para expresar que las reglas del idioma ni siquiera se proporcionaban. En el ejemplo de matrices, esto se puede entender fácilmente.

Construcción de armas

Una matriz en PHP tiene una sintaxis y funcionalidad convenientes. Este se puede describir por adelantado, pero a menudo es conveniente crear matrices sobre la marcha según sea necesario.

public $ Anne \u003d Array (); // se describe la matriz y no contiene nada

público $ afacto \u003d matriz ("aguacate", "melocotón", "cereza"); // en esta matriz tres elementos

Creando una matriz en el proceso de comprobación de cualquier condición:

$ csrcline \u003d "fila de datos analizados";

para ($ i \u003d 0; $ i<13; $i++) {

if (CheckFunc ($ CSRLLINE, $ CUSERLINE) (

$ Aresult \u003d "sí"; // Añadir a la matriz PHP

$ Aresult \u003d "no";

Como resultado de la ejecución de este ejemplo, se creará una matriz de 13 elementos, cuyos valores serán solo las cuerdas "Sí" o "No". Los elementos recibirán índices de 0 a 12. Se puede obtener el mismo efecto, después de escribir una matriz PHP "Future" en la cadena:

$ cfuturearray \u003d "";

para ($ i \u003d 0; $ i<13; $i++) {

$ cuserline \u003d inputuserline (); // poner algo

si ($ I\u003e 0) ($ CFUTURAARRAY. \u003d "|";)

if (CheckFunc ($ CSRLLINE, $ CUSERLINE) ($ CFUTURAARRAY. \u003d "SÍ";

) De lo contrario ($ CFUTURAARRAY. \u003d "NO";)

$ Aresult \u003d explotar ("|", $ cfutureArray);

Arreglos multidimensionales

Muchos sistemas de administración de sitios (SMS) utilizan matrices "con un alcance". Por un lado, esta es una buena práctica, por otro lado, hace que sea difícil de usar. Incluso si el autor está limpie la doctrina de la "matriz PHP en una matriz", entonces no debe ser abusado: no solo el desarrollador tendrá que acostumbrarse a la notación compleja. A menudo, después del tiempo, el propio Creador recordará durante mucho tiempo que escribió al principio:

"View_Manager" \u003d\u003e Array (41, "template_path_stack" \u003d\u003e Array (__ Dir__ "/ .../view",),

"Router" \u003d\u003e Array ("Rutas" \u003d\u003e Array ("Sayhello" \u003d\u003e Array (

"TIPO" \u003d\u003e "ZEND \\ MVC \\ Router \\ http \\ literal",

"Opciones" \u003d\u003e Array ("Ruta" \u003d\u003e "/ Sayhello", "Predeterminado" \u003d\u003e Array (

"Controlador" \u003d\u003e "HelloWorld \\ Controller \\ index", "Acción" \u003d\u003e "Índice",))))))

"Controladores" \u003d\u003e Array ("Invokables" \u003d\u003e Array (

"Helloworld \\ Controller \\ index" \u003d\u003e "HelloWorld \\ Controller \\ indexController"))

Esta es una muestra de la práctica de la matriz PHP en la matriz "de ZF 2. No también se inspira al principio, pero funciona y, quizás, hace que este marco sea exitoso (ejemplo de los ZendsKeToNapplication / Módulo / HelloGorld / Config / Module.config módulo .php).

Una matriz es un diseño de datos importante durante el diseño y el desarrollo. Su opción multidimensional fue una vez popular, pero con el tiempo se mantuvo la necesidad de matrices del máximo de dos o tres dimensiones. Es más fácil y más claro, y desde el punto de vista de la profesionalidad cuando comienza algo, se multiplica, significa que algo en la formulación de la tarea o en el código no es cierto.

Sencillo, accesible y comprensible.

Creación de una matriz en una matriz en PHP, es mejor limitar los dos tres niveles. A pesar de la estabilidad y la confiabilidad de PHP, produce errores en el procesamiento de estructuras sintácticas. Puede soportar esto, tener un buen código de editor, acostumbrarse a considerar con precisión los soportes y comas. Sin embargo, PHP no controla los tipos de datos (este es el karma de la programación moderna) y permite al desarrollador practicar errores semánticos.

La regla para controlar los tipos de variables o sus propias ideas para la transformación de la semántica en la sintaxis, a menudo de lujo incompleto. Esta es una pérdida de velocidades de script, la legibilidad del código, ... por lo tanto, la simplicidad en la codificación es siempre esencial.

PHP tiene un rasgo negativo significativo: cuando se produce la incertidumbre, el guión simplemente se cuelga. No todos los dependientes hacen frente a circunstancias imprevistas, y mucho depende de la experiencia e intuición del desarrollador. Cuanto más fácil sea el algoritmo, la información más asequible está estructurada, más posibilidades de encontrar un error o no permitirlo en absoluto.

Es característico que cuando aparezcan las primeras matrices, se propusieron opciones de datos en forma de estructuras: un intento torpe de crear algo de diferentes tipos de datos. El primero sobrevivió y adquirió una nueva sintaxis efectiva, la segunda se redujo a la planta baja.

Arreglos simples y asociativos.

La grabación de una matriz bidimensional es otro par de soportes "[" ["y"] ", por ejemplo: $ AsrcData significa atractivo para un elemento de matriz incluido en la matriz de $ AsrcData. En PHP no hay ningún requisito para declarar datos de antemano. Cualquier información siempre puede ser revisada por la existencia.

Crea muy efectivamente algo solo cuando sea necesario, en la forma en que tomó, y destruir cuando desapareció la necesidad. Uso de nombres significativos como llaves (índices), puede obtener diseños legibles, significativos en el contexto de la ubicación actual en el algoritmo:

$ ANKETEA ["NOMBRE"] \u003d "IVANOV";
$ ANKETEA ["EDAD"] \u003d 42;
$ ANKETEA ["Trabajo"] \u003d "Director";
$ ANKETEA ["Activo"] \u003d verdadero;
$ Atable \u003d $ ANKETEA;

$ ANKETEA ["NOMBRE"] \u003d "PETROV";
$ ANKETETA ["EDAD"] \u003d 34;
$ ANKETEA ["trabajo"] \u003d "gerente";
$ ANKETEA ["Activo"] \u003d verdadero;
$ Atable \u003d $ ANKETEA;

$ ANKETETA ["NOMBRE"] \u003d "AFANASYEV";
$ ANKETEA ["EDAD"] \u003d 28;
$ ANKETEA ["Trabajo"] \u003d "Trabajador";
$ ANKETEA ["Activo"] \u003d FALSO;
$ Atable \u003d $ ANKETEA;

$ SONE. \u003d Implode (";", $ atable). "
"// Segunda matriz PHP en la cadena
$ Sone. \u003d $ Atable ["trabajo"]; // Apelar a un elemento de la segunda matriz

El resultado de este ejemplo (la primera matriz es de costumbre, las teclas comienzan con 0, la segunda matriz es asociativa, en ella cuatro teclas: "Nombre", "Edad", "Trabajo", "Activo"):

$ Sone \u003d "petrov; 34; gerente; 1
Gerente";

En este ejemplo simple, puede ver cómo se puede aplicar el cuestionario creado a todos los empleados. Puede crear una matriz de empleados con índices en los números de tableta y, si se necesita un empleado específico, luego selecciónelo en el número de la tabla.

Si hay divisiones en la organización, o hay trabajadores de temporada, o se requiere para asignar por separado los jubilados, ... el diseño "FP-ARRAY" en la matriz es muy conveniente, pero nunca será elegido por la dimensión. Dos o tres dimensiones: un límite para una solución efectiva.

Llaves para trabajar con matrices.

Si solía importar cómo se organiza todo, en los últimos años la tradición de la era binaria en los últimos años, cuando el programador quiso saber exactamente cómo se almacenan los elementos de la matriz, y desean tener acceso directo a ellos, fueron completamente olvidado Hay muchas codificaciones de personajes que ocupan no uno bytes en la memoria. La palabra "bit" ahora puede encontrar cualquier cosa en las operaciones de búsqueda de battales, pero la búsqueda en la matriz PHP es un tema separado. El acceso a los artículos puede ser simple y asociativo. En el primer caso, los elementos de la matriz (que tienen alguno de los tipos disponibles en PHP) están numerados 0, 1, 2, ... en el segundo caso, el programador especifica su propio índice, denominado "clave" para Acceda al valor deseado.

$ Aline ["fruta"] \u003d "naranja"; // AQUÍ PHP-KEY ARRAY \u003d "FRUITO"

o (para que todo sea correcto con la codificación de la página y el código):

$ Aline \u003d iconv ("UTF-8", "CP1251", "naranja");

Al agregar un nuevo valor a la matriz de $ aline:

$ Aline \u003d iconv ("UTF-8", "CP1251", "PIC");
$ Aline \u003d iconv ("UTF-8", "CP1251", "pepino");
$ Aline \u003d iconv ("UTF-8", "CP1251", "berenjena");

como resultado de la ejecución del ciclo:

foreach ($ aline como $ ck \u003d\u003e $ cv) (
$ Cono. \u003d $ Ck. "\u003d". $ Cv. "
";
}

se obtendrá:

fruta \u003d naranja
0 \u003d melocotón
vegetal \u003d pepino
1 \u003d berenjena

La tecla PHP de una matriz al agregar elementos de "melocotón" y "berenjena" se forma secuencialmente de 0, y cuando especifica su valor será igual a este valor.

Eliminación de elementos de la matriz.

La forma más fácil es procesar. En este caso, por ejemplo, como resultado de la ejecución del ciclo, se considera la matriz de origen y se forma una nueva, en la que los elementos innecesarios simplemente no se registran.

Puedes hacerlo más fácil. Si se aplica el último ejemplo:

desanimado ($ aline); // Eliminar elemento de matriz PHP

el resultado será:

fruta \u003d naranja
vegetal \u003d pepino
1 \u003d berenjena

Las opciones para manipular elementos de matriz se pueden construir un conjunto. Por ejemplo, utilizando funciones: implode () y explote (), puede escribir una matriz PHP en una cadena con un separador y desmontar nuevamente a otra matriz, en otro separador.

Para eliminar simplemente una matriz en PHP, es suficiente para escribir: sin tomar ($ aline);

Es suficiente.

Buscar en matriz

PHP contiene funciones especiales de búsqueda y in_array (), pero antes de decidir usarlas, debe considerar la búsqueda en la matriz PHP por su cuenta.

Cualquier proyecto tiene matrices específicas diseñadas, especialmente cuando la parte de la semántica se transfiere a la sintaxis y se presenta con un conjunto de claves significativas bastante específicas. Esto le permite realizar sus propias características de búsqueda que también se puede referir.

En PHP, puede llamar a funciones cuyo nombre se determine durante la ejecución del programa. Un ejemplo muy práctico de la Biblioteca PHPWORD, que le permite leer y crear documentos MS Word:

$ Elementos \u003d Array ("Texto", "Inline", "Textrun", "Enlace", "PreserveextExt", "TextArk",
"LISTITEM", "LISTITEMRUN", "TABLA", "Imagen", "Objeto", "Nota al pie",
"Nota", "Casilla de verificación", "Caja de texto", "Campo", "Línea");

$ funciones \u003d matriz ();

para ($ i \u003d 0; $ i< count($elements); $i++) {
$ Funciones [$ I] \u003d "Agregar". $ Elementos [$ i];
}

Como resultado, una matriz de funciones de $ recibirá una matriz de $ elementos, es decir, los nombres de las funciones reales que realizan el trabajo con elementos reales del documento.

Llamando a $ Elements Function $ Funciones, puede obtener la búsqueda perfecta y un resultado rápido.

Elementos de clasificación

La tarea de clasificación de datos es importante, y PHP ofrece varias funciones para esto: Ordenar (), Rsort (), ASORT (), Ksort (), ... elementos ascendentes y descendentes Las segundas dos funciones conservan las relaciones entre las claves y los valores. A veces tiene sentido mezclar los valores de la matriz aleatoriamente aleatoriamente ().

Usando las funciones PHP para la clasificación, no debe olvidar que los elementos pueden no tener diferentes tipos, pero no un contenido completamente natural. En primer lugar, es necesario referirse muy cuidadosamente la clasificación de líneas que contengan letras rusas, clasificando la fecha, así como los números que se registran en diferentes formatos.

La mejor manera de escribir una decisión independiente, en cualquier caso, en la etapa de probar el script, es una clasificación manual. Ayudará a proporcionar situaciones imprevistas.

Arreglos de línea

Gracias a las funciones de implodación () y explotar (), una matriz se puede transformar fácilmente en la cadena y volver. Esto le permite almacenar datos en una representación compacta y desplegarlos en una condición conveniente según sea necesario.

Una matriz frente a una cadena abre nuevas características. Por ejemplo, la tarea de buscar palabras clave en el texto requiere que el encontrado no se agregue nuevamente.

$ CSRCLINE \u003d "Texto de texto ListateMrun TextBox Listitem TEXTBOX CHIPBOX Casilla de verificación Nota de texto";

$ Asrc \u003d explotar (", $ csrlina);
$ CDSTLINE \u003d "";

para ($ i \u003d 0; $ i< count($aSrc); $i++) {
$ cfind \u003d "[". $ Asrc [$ i]. "]";
Si (! IS_INTEGER (STRPOS ($ CDSTLINE, $ CFIND)) (
$ CDSTLINE. \u003d $ CFIND;
}
}
$ adst \u003d explotar ("] [", $ CDSTLINE);

$ CONE \u003d Implode (";, $ adst);

Como resultado, la variable de Cono de $ solo recibirá los valores de la línea de origen, que se encuentran allí por una vez: "Texto; LISTITETEMRUN; TEXTBOX; LISTITAM; COMPRUEBE CAJA; CAJA DE CAMBIA; Nota".

Lengua rusa en llaves y valores.

No se recomienda utilizar nada relacionado con codificaciones nacionales en estructuras sintácticas. Ruso, como todos los demás idiomas, cuyos símbolos van más allá de los límites de A-Z, no creará problemas en el área de datos, pero no en la sintaxis del código. A veces, incluso una tarea simple en PHP "Salida de una matriz a una impresora o en la pantalla" conducirá a "Krakoyarm", y más a menudo detendrá el script.

PHP - Lengua leal y tolerante se refiere a las codificaciones nacionales, pero hay muchas situaciones en las que se realizó el trabajo realizado solo porque en el lugar correcto y en el momento adecuado emitirá el valor clave, para reconocer lo que no será posible.

Sintaxis PHP y entorno de idiomas

Debe recordarse que la sintaxis PHP es una, pero los diseños de este "acuerdo" de esta sintaxis "con otras aplicaciones, con el sistema operativo, con opciones de hardware. Hay muchas opciones, nunca es posible prever.

La regla "en el código es solo el código, y en la entrada, adentro, y en la salida, hay toda la información", ayudará a evitar sorpresas imprevistas. El valor PHP en la matriz puede ser "ruso", pero la clave debe ser sin sintácticamente correcta no solo de las posiciones de este idioma, sino también desde el punto de vista de su trabajo.

Ya he estado usando la función Array_search () para encontrar valores en la matriz, ya que ha escuchado y leo repetidamente que funciona notablemente más rápido que la búsqueda de la matriz en el ciclo, pero lo más rápido que no sabía. Finalmente tengo las manos para comprobar y calcular.

Compare la velocidad de búsqueda en la matriz usando esta función con la superficie habitual de la matriz en foreach y mientras los ciclos. En 10-100 elementos de la matriz, la diferencia en invisible y tiempo tan poco que pueden ser adientes. Pero para grandes matrices, la diferencia fue muy significativa. Con un aumento en el tamaño de la matriz por un pedido, el tiempo de búsqueda ha aumentado significativamente. Con cien mil artículos, la velocidad de incorporación se cayó a 0.013 segundos, y mientras que, a 0.017, a pesar del hecho de que Array_Search () se desaceleró, pero aún seguía siendo un orden de magnitud más rápido: 0.004 segundos. Para un script grande que se ejecuta con grandes matrices, la reemplazo de la búsqueda en el ciclo para buscar con Array_Search () no será en absoluto la "optimización de pulgas".

En este sentido, recordé una discusión reciente con uno de los colegas en el trabajo, sobre si el programador necesita conocer todas estas funciones de lenguaje incorporado, o un "programador del programador" y el conocimiento general "Programmer. Sin salir con el razonamiento sobre este almacén de la mente, creo que todavía es necesario conocer las funciones, tal vez no toda la sintaxis en los detalles, pero aunque las funciones hay y que pueden en términos generales.

UPP: ¿Necesita un almacén programador de la mente, también se necesita! Y el cuidado con la memoria no se impide (hincapié en inspiración y rango :)

Bajo el código de script de Habacine, que calculó el tiempo:

$ Mass \u003d 100000; // el número de valores en la matriz en la que buscaremos
$ búsqueda \u003d 50,000; // en la matriz buscaremos este valor
$ first_result \u003d Array (); // Array de resultados, para calcular el valor promedio de la primera opción
$ Second_Result \u003d Array (); // Array de resultados, para calcular el valor promedio de la segunda opción
$ TIERD_RESULT \u003d Array (); // una matriz de resultados, para calcular el valor promedio de la tercera opción

// crear y llenar una matriz
$ test_array \u003d rango (0, $ mass-1); // gracias selenit))

/*
$ test_array \u003d matriz ();
para ($ i \u003d 0; $ i<$mass; $i++)
{
$ test_array \u003d $ i;
}
*/

// ciclo para contar valores medio
para ($ d \u003d 0; $ d<30; $d++) {

// *************** Buscar por array_search *********************

// ejecutar un conteo de tiempo
$ TIME_START \u003d MicroTime (1);
// Buscar
$ KEY \u003d Array_Search ($ búsqueda, $ test_array, verdadero);
// Si se encuentra
Si ($ KEY! \u003d\u003d FALSO) // ¡Necesitas! \u003d\u003d ¡Y NO! \u003d, porque el número del primer elemento es 0
{
Echo $ test_array [$ clave];
}
$ TIME_END \u003d MicroTime (1);
// Conteo de conteo final

// escribir en una matriz de valores
$ FIRST_RESULT \u003d $ TIME_END - $ TIME_START;

// *************** Búsqueda por matriz con un ciclo foreach *******************

// ejecutar un conteo de tiempo
$ TIME_START \u003d MicroTime (1);
// buscarse a sí mismo
foreach ($ test_array como $ ta)
{
Si ($ TA \u003d\u003d $ Buscar)
{
Echo $ ta;
Rotura;
}
}
$ TIME_END \u003d MicroTime (1);
// Conteo de conteo final

// escribir en una matriz de valores
$ Second_Result \u003d $ TIME_END - $ TIME_START;

// *************** Buscar por matriz con un ciclo mientras *********************

// ejecutar un conteo de tiempo
$ TIME_START \u003d MicroTime (1);

// Determinar la longitud de la matriz
$ Cuenta \u003d contar ($ test_array);
$ j \u003d 0;
// buscarse a sí mismo
Mientras ($ j<$count)
{
Si ($ test_array [$ j] \u003d\u003d $ Buscar) // si se encuentra
{
Echo $ test_array [$ j];
Rotura;
}
$ J ++;
}
$ TIME_END \u003d MicroTime (1);
// Conteo de conteo final

// escribir en una matriz de valores
$ TIERD_RESULT \u003d $ TIME_END - $ TIME_START;
}

$ srednee1 \u003d array_sum ($ first_result) / cuenta ($ first_result);
$ srednee2 \u003d array_sum ($ Second_Result) / Cuenta ($ Second_Result);
$ srednee3 \u003d array_sum ($ tercer_result) / cuenta ($ tercer_result);

Printf ("El primer código se realiza en promedio para:% .7f segundos", $ srednee1);
Printf ("El segundo código se realiza en promedio para:% .7f segundos", $ Srednee2);
Printf ("El tercer código se realiza en promedio para:% .7f segundos", $ srednee3);

// resultado:
// El primer código se realiza en promedio para: 0.0000295 segundos
// El segundo código se realiza en promedio para: 0.0153386 segundos
// Tercer código realizado en promedio para: 0.0226001 segundos



¿Te gustó el artículo? Compártelo