Bird
Raised Fist0
PHPprogramming~5 mins

Array walk function in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the array_walk() function do in PHP?
It applies a user-defined function to every element of an array, allowing you to modify or use each element.
Click to reveal answer
beginner
How do you define the callback function used in array_walk()?
The callback function takes at least one parameter: the value of the current element, passed by reference if you want to modify it. It can also take a second optional parameter for the key.
Click to reveal answer
intermediate
What is the difference between array_walk() and array_map()?
array_walk() applies a function to each element and can modify the original array by reference. array_map() returns a new array with the results and does not modify the original array.
Click to reveal answer
beginner
Can array_walk() modify the original array elements?
Yes, if the callback function uses the value parameter by reference, it can change the original array elements.
Click to reveal answer
beginner
Write a simple example of array_walk() that appends '!' to each string in an array.
Example:<br><pre>function addExclamation(&$item, $key) {
  $item .= '!';
}
$array = ['Hi', 'Hello', 'Hey'];
array_walk($array, 'addExclamation');
// Result: ['Hi!', 'Hello!', 'Hey!']</pre>
Click to reveal answer
What parameters does the callback function for array_walk() receive?
AValue and key of each array element
BOnly the value of each element
COnly the key of each element
DThe entire array
Does array_walk() return a new array?
ANo, it returns the original array
BYes, always
CYes, but only if the callback returns a value
DNo, it returns true or false
How can you modify the original array elements inside the callback?
AYou cannot modify original elements
BBy passing the value parameter by reference
CBy using a global variable
DBy returning the new value from the callback
Which function is better to create a new array with modified values without changing the original array?
Aarray_walk()
Barray_filter()
Carray_map()
Darray_reduce()
What happens if the callback function in array_walk() does not accept the key parameter?
AThe key is ignored and only the value is passed
BThe function receives the key only
CIt causes an error
DThe array is not processed
Explain how array_walk() works and how it can modify an array.
Think about how you can change each item in a list by visiting them one by one.
You got /4 concepts.
    Compare array_walk() and array_map() in terms of modifying arrays.
    Consider whether you want to change the original list or create a new one.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the PHP function array_walk do?
      easy
      A. It applies a user-defined function to every element of an array.
      B. It sorts the array in ascending order.
      C. It merges two arrays into one.
      D. It removes duplicate values from an array.

      Solution

      1. Step 1: Understand the purpose of array_walk

        The function array_walk is designed to apply a callback function to each element of an array.
      2. Step 2: Compare with other array functions

        Sorting, merging, or removing duplicates are done by other functions like sort, array_merge, or array_unique.
      3. Final Answer:

        It applies a user-defined function to every element of an array. -> Option A
      4. Quick Check:

        array_walk = apply function to each element [OK]
      Hint: array_walk runs a function on each array item [OK]
      Common Mistakes:
      • Confusing array_walk with sorting functions
      • Thinking it merges arrays
      • Assuming it removes duplicates
      2. Which of the following is the correct syntax to use array_walk with a callback function named modify on an array $arr?
      easy
      A. array_walk('modify', $arr);
      B. array_walk(modify, $arr);
      C. array_walk($arr, modify);
      D. array_walk($arr, 'modify');

      Solution

      1. Step 1: Recall array_walk syntax

        The correct syntax is array_walk(array, callback), where callback is a string with the function name.
      2. Step 2: Check the options

        Only array_walk($arr, 'modify'); matches the correct order and uses quotes around the callback function name.
      3. Final Answer:

        array_walk($arr, 'modify'); -> Option D
      4. Quick Check:

        array_walk(array, 'function') syntax [OK]
      Hint: array_walk takes array first, then callback as string [OK]
      Common Mistakes:
      • Swapping the order of parameters
      • Omitting quotes around callback name
      • Passing callback without quotes
      3. What will be the output of the following PHP code?
      $numbers = [1, 2, 3];
      array_walk($numbers, function(&$value) {
          $value *= 2;
      });
      print_r($numbers);
      medium
      A. Array ( [0] => 2 [1] => 4 [2] => 6 )
      B. Array ( [0] => 1 [1] => 2 [2] => 3 )
      C. Array ( [0] => 0 [1] => 0 [2] => 0 )
      D. Error: Cannot modify array elements

      Solution

      1. Step 1: Understand the callback function

        The callback multiplies each value by 2, and the value is passed by reference (&$value), so changes affect the original array.
      2. Step 2: Apply changes to each element

        1*2=2, 2*2=4, 3*2=6, so the array becomes [2, 4, 6].
      3. Final Answer:

        Array ( [0] => 2 [1] => 4 [2] => 6 ) -> Option A
      4. Quick Check:

        Reference callback doubles values [OK]
      Hint: Pass value by reference to modify array items [OK]
      Common Mistakes:
      • Not using & to modify original array
      • Expecting original array unchanged
      • Confusing output format
      4. Identify the error in this code snippet:
      $arr = [1, 2, 3];
      array_walk($arr, function($val) {
          $val += 5;
      });
      print_r($arr);
      medium
      A. The array must be passed by reference to array_walk.
      B. array_walk requires a named function, not an anonymous function.
      C. Callback function parameter should be passed by reference to modify array.
      D. print_r cannot print arrays modified by array_walk.

      Solution

      1. Step 1: Check how callback modifies array

        The callback parameter $val is passed by value, so changes inside do not affect original array.
      2. Step 2: Correct usage for modification

        Passing &$val by reference allows modifying the original array elements.
      3. Final Answer:

        Callback function parameter should be passed by reference to modify array. -> Option C
      4. Quick Check:

        Use & in callback to change array items [OK]
      Hint: Use & in callback parameter to modify array elements [OK]
      Common Mistakes:
      • Ignoring reference in callback parameter
      • Thinking array_walk needs array by reference
      • Believing anonymous functions are not allowed
      5. Given the array $fruits = ['apple' => 2, 'banana' => 3, 'cherry' => 5];, how can you use array_walk to add 10 to each value only if the value is less than 4?
      hard
      A. array_walk($fruits, function($val) { if ($val < 4) $val += 10; });
      B. array_walk($fruits, function(&$val) { if ($val < 4) $val += 10; });
      C. array_walk($fruits, function(&$val, $key) { if ($key < 4) $val += 10; });
      D. array_walk($fruits, function(&$val, $key) { if ($val > 4) $val += 10; });

      Solution

      1. Step 1: Identify condition and modification

        We want to add 10 to values less than 4, so check $val < 4 inside the callback.
      2. Step 2: Ensure modification affects original array

        Pass $val by reference (&$val) to change original array values.
      3. Step 3: Verify options

        array_walk($fruits, function(&$val) { if ($val < 4) $val += 10; }); correctly uses reference and condition. array_walk($fruits, function($val) { if ($val < 4) $val += 10; }); lacks reference, so no change. array_walk($fruits, function(&$val, $key) { if ($key < 4) $val += 10; }); checks key instead of value. array_walk($fruits, function(&$val, $key) { if ($val > 4) $val += 10; }); adds 10 when value is greater than 4, which is wrong.
      4. Final Answer:

        array_walk($fruits, function(&$val) { if ($val < 4) $val += 10; }); -> Option B
      5. Quick Check:

        Reference + condition on value < 4 [OK]
      Hint: Use & and if condition inside callback to selectively modify [OK]
      Common Mistakes:
      • Not passing value by reference
      • Checking key instead of value
      • Using wrong comparison operator
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard