¿Cuáles son las diferencias entre los métodos array_map(), array_walk() y array_filter() en PHP?

Método array_map() : El método array_map() se usa para modificar todos los elementos en una o más arrays de acuerdo con alguna condición definida por el usuario de una manera sencilla. Básicamente, envía cada uno de los elementos de una array a una función definida por el usuario y devuelve una array con nuevos valores modificados por esa función.

Sintaxis:

array_map(functionName, arr1, arr2...)

Parámetros: Esta función toma 2 parámetros obligatorios functionName y arr1 y el resto son opcionales.

  • functionName (obligatorio): este parámetro define el nombre de la función definida por el usuario según la cual se modificarán los valores en la array.
  • arr1 (obligatorio): este parámetro especifica la array que se modificará.
  • arr2 (obligatorio): este parámetro especifica la array que se modificará.

El parámetro functionName es obligatorio y podemos pasar cualquier cantidad de arrays a esta función denominada arr1, arr2, …, arrn, etc.

Valor devuelto: esta función devuelve una array que contiene todos los elementos de arr1 después de aplicar la función de usuario a cada uno.

Ejemplo: El siguiente ejemplo ilustra el funcionamiento de la función array_map() en PHP.

PHP

<?php
  
function fun1($v) {
      return ($v + 7);     // add 7
}
  
function fun2($v1, $v2) {
    if ($v1 == $v2) return 1;    
    else return 0;
}
  
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(1, 3, 3, 4, 8);
  
print_r(array_map("fun1", $arr1));
  
print_r(array_map("fun2", $arr1, $arr2));
  
?>

Producción:

Array
(
    [0] => 8
    [1] => 9
    [2] => 10
    [3] => 11
    [4] => 12
)
Array
(
    [0] => 1
    [1] => 0
    [2] => 1
    [3] => 1
    [4] => 0
)

Método array_walk() : El método array_walk() recorre toda la array independientemente de la posición del puntero y aplica una función de devolución de llamada o una función definida por el usuario a cada elemento de la array. Las claves y los valores del elemento de array son parámetros en la función de devolución de llamada.

Sintaxis :

boolean array_walk($array, myFunction, $extraParam)

Parámetros : Esta función acepta tres parámetros como se describe a continuación.

  • $array: este es un parámetro obligatorio y especifica la array de entrada.
  • myFunction: este parámetro especifica el nombre de la función definida por el usuario y también es obligatorio. La función definida por el usuario generalmente exceptúa dos parámetros de los cuales el primer parámetro representa los valores de la array y el segundo parámetro representa las claves correspondientes.
  • $extraparam: este es un parámetro opcional. Especifica un parámetro adicional a la función definida por el usuario además de los dos parámetros, claves de array y valores.

Valor de retorno: esta función devuelve un valor booleano. Devuelve VERDADERO en caso de éxito o FALSO en caso de fallo.

Ejemplo: El siguiente ejemplo ilustra el método array_walk() .

PHP

<?php
// PHP program to illustrate array_walk() method
  
// User-defined callback function
function myfunction($value, $key) {
    echo "The key $key has the value $value </br>";
}
  
// Input array
$arr = array(
      "a" => "yellow", 
      "b" => "pink", 
      "c" => "purple"
);
  
// Calling array_walk() method with
// no extra parameter
array_walk($arr, "myfunction");
  
?>

Producción:

The key a has the value yellow 
The key b has the value pink 
The key c has the value purple

Método array_filter() : este método se utiliza para filtrar los elementos de una array mediante una función definida por el usuario que también se denomina función de devolución de llamada. La función array_filter() itera sobre cada valor de la array, pasándolos a la función definida por el usuario o la función de devolución de llamada. Si la función de devolución de llamada devuelve verdadero, el valor actual de la array se devuelve a la array de resultados; de lo contrario, no. Las claves de la array se conservan, es decir, la clave del elemento en la array original y la array de salida es la misma.

Sintaxis:

array array_filter($array, $callback_function, $flag)

Parámetros : La función toma tres parámetros, de los cuales uno es obligatorio y los otros dos son opcionales.

  • $array (obligatorio): Esto se refiere a la array de entrada en la que se realizará la operación de filtro.
  • $callback_function (opcional): Hace referencia a la función definida por el usuario. Si no se proporciona la función, se eliminarán todas las entradas de la array que sean FALSO.
  • $bandera (opcional): se refiere a los argumentos pasados ​​a la función de devolución de llamada.
    • ARRAY_FILTER_USE_KEY: pasa la clave como único argumento a una función de devolución de llamada, en lugar del valor de la array.
    • ARRAY_FILTER_USE_BOTH: pasa tanto el valor como la clave como argumentos para la devolución de llamada en lugar del valor.

Valor devuelto: la función devuelve una array filtrada.

Ejemplo: a continuación se muestra un programa que muestra cómo devolver o filtrar incluso elementos de una array utilizando la función array_filter() .

PHP

<?php
  
// PHP function to check for even
// elements in an array
function Even($array) {
    
    // Returns if the input integer is even
    if($array % 2 == 0)
        return TRUE;
    else
        return FALSE;
}
  
$array = array(12, 0, 0, 18, 27, 0, 46);
print_r(array_filter($array, "Even"));
  
?>

Producción:

Array
(
    [0] => 12
    [1] => 0
    [2] => 0
    [3] => 18
    [5] => 0
    [6] => 46
)

diferencias :

array_mapa() array_walk() array_filtro()
Esta función aplica la devolución de llamada a los elementos presentes en la array. Esta función aplica la función de devolución de llamada definida por el usuario a cada elemento de la array de entrada dada. Esta función se utiliza para filtrar los elementos presentes en una array mediante una función de devolución de llamada.
Esta función de devolución de llamada de array_map() se ejecuta para cada elemento de cada array. La función array_walk() aplica una función proporcionada por el usuario a cada miembro de una array array_filter() itera sobre cada valor en la array pasándolos a la función de devolución de llamada
 

Publicación traducida automáticamente

Artículo escrito por bhanusivanagulug y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *