Bird
Raised Fist0
PHPprogramming~15 mins

Array slice and splice in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Array slice and splice
📖 Scenario: You are managing a list of fruits in a basket. Sometimes you want to look at a part of the list without changing it, and sometimes you want to remove some fruits and add new ones in their place.
🎯 Goal: Learn how to use PHP array functions array_slice to get a part of an array without changing it, and array_splice to remove and add elements in an array.
📋 What You'll Learn
Create an array called $fruits with exact values: 'apple', 'banana', 'cherry', 'date', 'elderberry'
Create a variable called $start and set it to 1
Use array_slice with $fruits and $start to get a slice called $someFruits
Use array_splice on $fruits starting at $start to remove 2 elements and add 'fig' and 'grape'
Print $someFruits and $fruits arrays using print_r
💡 Why This Matters
🌍 Real World
Managing lists of items where you want to look at parts of the list or change parts of it, like editing a shopping list or playlist.
💼 Career
Understanding how to manipulate arrays is essential for backend development, data processing, and working with collections of data in PHP.
Progress0 / 4 steps
1
Create the initial array of fruits
Create an array called $fruits with these exact values in order: 'apple', 'banana', 'cherry', 'date', 'elderberry'.
PHP
Hint

Use square brackets [] to create the array with the exact fruit names as strings.

2
Set the start index for slicing and splicing
Create a variable called $start and set it to the number 1.
PHP
Hint

Just assign the number 1 to the variable $start.

3
Get a slice of the fruits array
Use array_slice with $fruits and $start to create a new array called $someFruits that contains the part of $fruits starting from index 1.
PHP
Hint

Use array_slice with two arguments: the array and the start index.

4
Remove and add fruits using array_splice and print results
Use array_splice on $fruits starting at $start to remove 2 elements and add 'fig' and 'grape'. Then print $someFruits and $fruits using print_r.
PHP
Hint

Use array_splice with four arguments: the array, start index, number to remove, and an array of new fruits to add. Then use print_r to show both arrays.

Practice

(1/5)
1. What is the main difference between array_slice and array_splice in PHP?
easy
A. array_slice returns a new array without changing the original, while array_splice modifies the original array.
B. array_slice modifies the original array, while array_splice returns a new array without changes.
C. Both functions modify the original array but in different ways.
D. Both functions return a new array and do not modify the original array.

Solution

  1. Step 1: Understand array_slice behavior

    array_slice extracts a portion of the array and returns it as a new array without changing the original array.
  2. Step 2: Understand array_splice behavior

    array_splice removes or replaces elements in the original array and returns the removed elements, thus modifying the original array.
  3. Final Answer:

    array_slice returns a new array without changing the original, while array_splice modifies the original array. -> Option A
  4. Quick Check:

    Slice copies, splice changes original [OK]
Hint: Slice copies array parts, splice changes the original array [OK]
Common Mistakes:
  • Thinking both functions modify the original array
  • Confusing which function returns a new array
  • Assuming splice returns the modified array instead of removed elements
2. Which of the following is the correct syntax to remove 2 elements starting from index 1 using array_splice on array $arr?
easy
A. array_splice($arr, 2, 1);
B. array_splice($arr, 1);
C. array_splice($arr, 1, 2);
D. array_splice($arr, 0, 2);

Solution

  1. Step 1: Identify parameters of array_splice

    The function signature is array_splice(array &$array, int $offset, int $length = ?). To remove 2 elements starting at index 1, offset = 1 and length = 2.
  2. Step 2: Match parameters to options

    array_splice($arr, 1, 2); uses array_splice($arr, 1, 2); which correctly removes 2 elements starting from index 1.
  3. Final Answer:

    array_splice($arr, 1, 2); -> Option C
  4. Quick Check:

    Offset 1, length 2 removes correct elements [OK]
Hint: array_splice($arr, start, length) removes elements from start [OK]
Common Mistakes:
  • Swapping offset and length values
  • Omitting length parameter and removing all after offset
  • Using wrong index for offset
3. What will be the output of the following PHP code?
$arr = [10, 20, 30, 40, 50];
$result = array_slice($arr, 2, 2);
print_r($result);
medium
A. [30, 40]
B. [20, 30]
C. [40, 50]
D. [10, 20]

Solution

  1. Step 1: Understand array_slice parameters

    It extracts elements starting at index 2, taking 2 elements from $arr.
  2. Step 2: Extract elements from the array

    Index 2 is 30, next element is 40, so the slice is [30, 40].
  3. Final Answer:

    [30, 40] -> Option A
  4. Quick Check:

    Slice from index 2, length 2 = [30, 40] [OK]
Hint: array_slice returns a new array from offset with given length [OK]
Common Mistakes:
  • Confusing index start point
  • Assuming original array is changed
  • Mixing up array_slice with array_splice
4. Consider this code snippet:
$arr = [1, 2, 3, 4, 5];
array_splice($arr, 2, 2, [8, 9]);
print_r($arr);

What is the output?
medium
A. [1, 2, 3, 4, 8, 9, 5]
B. [1, 2, 3, 4, 5]
C. [8, 9, 5]
D. [1, 2, 8, 9, 5]

Solution

  1. Step 1: Understand array_splice with replacement

    The call removes 2 elements starting at index 2 (elements 3 and 4) and inserts [8, 9] at that position.
  2. Step 2: Modify the original array accordingly

    Original array: [1, 2, 3, 4, 5]
    Remove elements at index 2 and 3: [3, 4]
    Insert [8, 9] at index 2
    Resulting array: [1, 2, 8, 9, 5]
  3. Final Answer:

    [1, 2, 8, 9, 5] -> Option D
  4. Quick Check:

    Splice replaces elements with new ones [OK]
Hint: Splice can replace elements by passing replacement array [OK]
Common Mistakes:
  • Expecting original array unchanged
  • Forgetting splice removes elements before inserting
  • Confusing splice insertion with append
5. You have an array $data = [5, 10, 15, 20, 25, 30]. You want to remove the middle two elements and insert 100 and 200 in their place, then get a new array with the last three elements without changing the original array. Which code snippet correctly does this?
hard
A.
array_splice($data, 2, 2, [100, 200]);
$copy = array_slice($data, -3);
print_r($copy);
B.
$copy = array_slice($data, -3);
array_splice($data, 2, 2, [100, 200]);
print_r($copy);
C.
$copy = array_splice($data, -3);
array_splice($data, 2, 2, [100, 200]);
print_r($copy);
D.
$copy = array_slice($data, 2, 3);
array_splice($data, 2, 2, [100, 200]);
print_r($copy);

Solution

  1. Step 1: Extract last three elements without changing original

    Using array_slice($data, -3) copies last three elements [20, 25, 30] into $copy without modifying $data.
  2. Step 2: Modify original array by replacing middle two elements

    array_splice($data, 2, 2, [100, 200]) removes elements at index 2 and 3 (15, 20) and inserts 100 and 200.
  3. Step 3: Print the copied array

    Printing $copy shows the last three elements of the original array before modification.
  4. Final Answer:

    $copy = array_slice($data, -3); array_splice($data, 2, 2, [100, 200]); print_r($copy); -> Option B
  5. Quick Check:

    Slice first to copy, then splice to modify [OK]
Hint: Slice first to copy, then splice to modify original [OK]
Common Mistakes:
  • Using splice to copy array (modifies original)
  • Modifying array before slicing (copy changes)
  • Wrong slice parameters for last elements
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