How to Implement PHP’s array_unshift Manually Without Built-in Functions

Manually implementing the behavior of PHP’s array_unshift function is an excellent way to understand how to add elements to the beginning of an array while maintaining its order. This custom implementation mimics array_unshift functionality without using PHP’s built-in array functions.

What Does array_unshift Do?

The array_unshift function adds one or more elements to the beginning of an array, shifting all existing elements to higher indexes.

For example:

$array = ["b", "c", "d"];
array_unshift($array, "a"); 
// Result: ["a", "b", "c", "d"]

Manual Implementation

Here’s how to achieve the same functionality manually:

function custom_array_unshift(&$array, ...$elements) {
    $newArray = []; // Initialize a new array to hold the result.

    // Add new elements to the beginning of the new array.
    foreach ($elements as $element) {
        $newArray[] = $element;
    }

    // Add the existing elements of the original array to the new array.
    foreach ($array as $value) {
        $newArray[] = $value;
    }

    // Replace the original array with the new array.
    $array = $newArray;

    // Return the new count of the array.
    return count($array);
}

// Example input array.
$array = ["b", "c", "d"];

// Add elements to the beginning of the array.
$newCount = custom_array_unshift($array, "a", "x", "y");

// Output the modified array and the new count.
print_r($array);
echo "New count: " . $newCount;

Output:

Array
(
    [0] => a
    [1] => x
    [2] => y
    [3] => b
    [4] => c
    [5] => d
)
New count: 6

How It Works

  1. Initialize a New Array:
    • A new array ($newArray) is created to store the result.
  2. Add New Elements First:
    • The $elements to be added are iterated over and appended to the $newArray.
  3. Merge Original Array:
    • Each element of the original array is then appended to the $newArray.
  4. Replace Original Array:
    • The original array ($array) is replaced with the newly constructed array.
  5. Return the Count:
    • The function returns the total count of the updated array.

Why Create a Custom Implementation?

  • Flexibility: Allows for modifications, such as adding conditional logic.
  • Learning Opportunity: Deepens your understanding of how arrays work in PHP.
  • Custom Use Cases: Useful in environments where built-in functions are restricted or unavailable.

Manually implementing array_unshift without PHP’s built-in functions provides a clear understanding of how elements can be prepended to an array. It’s a useful exercise for learning PHP and handling unique scenarios where custom functionality is required.

Keep Learning 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *