Home  >  Article  >  Backend Development  >  When to Use array_map, array_walk, and array_filter in PHP?

When to Use array_map, array_walk, and array_filter in PHP?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 09:52:02867browse

 When to Use array_map, array_walk, and array_filter in PHP?

Explaining the Differences between array_map, array_walk, and array_filter

Array functions in PHP provide convenient ways to manipulate arrays. Among these, array_map, array_walk, and array_filter are commonly used. While they share similarities, there are key distinctions in their behavior.

Functionality Overview

  • array_map: Applies a callback function to each element of the array(s) and returns a new array containing the results.
  • array_walk: Applies a callback function to each element of the array and updates the original array in place.
  • array_filter: Removes elements from the array based on a callback function, returning a new array containing only the elements that pass the condition.

Key Differences

  • Array Modification: array_walk modifies the original array, while array_map does not.
  • Key Access: array_walk allows access to array keys within the callback function, while array_map does not.
  • Return Values: array_map returns a new array, while array_walk returns true. array_filter also returns a new array, but only contains the filtered elements.
  • Iteration: array_map can iterate over multiple arrays simultaneously, while array_walk only iterates over one array.
  • Arbitrary Data Passing: array_walk can accept an additional parameter to pass to the callback, an option introduced in PHP 5.3.
  • Returned Array Length: array_map's resulting array matches the length of the largest input array, while array_walk's array does not change length. array_filter returns an array that matches the length of the filtered elements.

Illustrative Examples

<code class="php">$a = [2.4, 2.6, 3.5];

// array_map
$b = array_map('floor', $a); // $a remains unchanged
print_r($b); // Output: [2, 2, 3]

// array_walk
array_walk($a, 'floor'); // Modifies $a
print_r($a); // Output: [2, 2, 3]

// array_filter
$c = array_filter($a, fn($v) => $v > 2.5); // Filter elements
print_r($c); // Output: [2.6, 3.5]</code>

In conclusion, array_map, array_walk, and array_filter each have specific roles in array manipulation. Understanding their differences allows developers to choose the most appropriate function for their task.

The above is the detailed content of When to Use array_map, array_walk, and array_filter in PHP?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn