Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 2908|Respuesta: 0

Publicación de recién llegados, PHP resume 6 formas de recorrer arrays

[Copiar enlace]
Publicado en 8/6/2022 15:56:10 | | |


En las operaciones diarias de PHP, los arrays son la estructura más común, y tratamos con contenido relacionado con arrays casi a diario. Así que la pregunta es, ¿cómo se recorren y procesan los arrays en general?


1、para cada una
Es familiar, ¿no es tu favorito?
$arr = ['a', 'b', 'c'];
foreach ($arr como $key => $value) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


2、array_map
Utiliza funciones anónimas para manejar cada elemento del array. Se devuelve un nuevo array cuando se completa el recorrido
$arr = ['a', 'b', 'c'];
$arr = array_map(función ($item) {
    volver $item . '_i';
}, $arr);
print_r($arr); ['a_i', 'b_i', 'c_i'];
Puedes trabajar con varios arrays al mismo tiempo
$arr_1 = ['a', 'b', 'c'];
$arr_2 = ['tú', 'bueno', 'es', 'original', 'pecado'];
$arr_n = [...];
$arr = array_map(función ($item_1, $item_2) {
    return $item_1. '_' . $item_2. '_i';
}, $arr_1, $arr_2);
print_r($arr); ['a_ _i', 'b_ es good_i', '¿Estás c__i', '_original _i', '_sin_i']
Sí, el número de recorridos se basa en el array más largo.
Después de recorrer 3 veces, $arr_1 se completa realmente, por lo que los valores de $item_1 quedan nulos después de eso


3、array_walk
Recorrer tu array como pase de referencia no tiene valor de retorno y solo puede procesar un array.
$arr = ['a', 'b', 'c'];
array_walk($arr, función ($item) {
    $item = $item . '_i';
});


print_r($arr); ['a_i', 'b_i', 'c_i'];
Aviso $item, sí, hay un extra &, lo que significa que tu parámetro está recibiendo datos por referencia. Solo tienes que encontrar la manera de cambiar este parámetro.


Si se trata de matrices bidimensionales, el método de procesamiento también es inseparable.
$arr = [
    ['nombre' => 'a'],
    ['nombre' => 'b'],
    ['nombre' => 'c']
];
array_walk($arr, función ($item) {
    $item['nombre'] = $item['nombre'] . '_i';
});
print_r($arr); [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']];


4、for
Esta debería ser una sintaxis muy genérica
$arr = ['a', 'b', 'c'];
para ($i = 0; $i < conde($arr); ++$i) {
    $arr[$i] = $arr[$i] . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];
No lo recomiendo. No es tan eficiente como foreach. Y el método de escritura es un poco más engorroso que el de Forreach.


5、cada una
Jaja, esta función se ha abandonado en PHP7.2 @deprecated y se siente especialmente anticuada. La eficiencia ejecutiva de este método de escritura tampoco es buena, y los principiantes deberían rendirse directamente.
$arr = ['a', 'b', 'c'];
mientras (list($key, $value) = chaquen($arr)) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


6、restablecer
Para ser precisos, no es solo una función para reiniciar, sino también una combinación de múltiples funciones integradas, que básicamente no se usa para escribir código
$arr = ['a', 'b', 'c'];
reset() puntero al cabeza, de hecho, el predeterminado es señalar al principio, puedes ignorar esta frase
reinicio ($arr);
corriente() para obtener el valor del elemento del puntero actual
mientras que ($value = actual($arr)) {
    key() para obtener el subíndice de elemento del puntero actual
    $arr[tecla($arr)] = $value . '_i';
    Next() apuntador al siguiente
    a continuación ($arr);
}
print_r($arr); ['a_i', 'b_i', 'c_i'];





Anterior:[Batalla Práctica] Empaquetando ASP.NET núcleos en una imagen NUGET Problema de tiempo de espera
Próximo:Extensiones de subidas masivas de imágenes del editor Kindeditor (sin dependencia de Flash)
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com