Hoe Verwijder je een Element uit een Array in PHP?

Gepubliceerd 20 mei 2024

De unset() functie gebruiken om array-elementen te verwijderen

Een enkel element verwijderen met unset()

De unset() functie in PHP verwijdert een element uit een array op basis van zijn sleutel. Om een enkel element te verwijderen, geef je de array en de sleutel van het element dat je wilt verwijderen door als argumenten aan de unset() functie.

Hier is een voorbeeld dat laat zien hoe je een enkel element uit een array verwijdert met unset():

$fruits = array("apple", "banana", "orange", "grape");
unset($fruits[2]);
print_r($fruits);

In dit voorbeeld hebben we een array genaamd $fruits met vier elementen. We gebruiken de unset() functie om het derde element (index 2) uit de array te verwijderen, wat "orange" is. Na het verwijderen van het element, gebruiken we print_r() om de bijgewerkte array weer te geven, wat het volgende oplevert:

Array
(
    [0] => apple
    [1] => banana
    [3] => grape
)

Wanneer je unset() gebruikt om een element te verwijderen, worden de indexen van de array niet opnieuw geïndexeerd. Na het verwijderen van een element kan de array gaten hebben in zijn indexen.

Meerdere elementen verwijderen met unset()

De unset() functie stelt je ook in staat om meerdere elementen uit een array te verwijderen door meerdere sleutels te specificeren. Geef meerdere sleutels door als afzonderlijke argumenten aan de unset() functie om meerdere elementen in één enkele instructie te verwijderen.

Hier is een voorbeeld dat het verwijderen van meerdere elementen uit een array demonstreert met unset():

$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
unset($numbers[3], $numbers[6], $numbers[8]);
print_r($numbers);

In dit voorbeeld hebben we een array $numbers met tien elementen. We gebruiken de unset() functie om het vierde element (index 3), het zevende element (index 6), en het negende element (index 8) uit de array te verwijderen. Na het verwijderen van de elementen, zal de bijgewerkte array zijn:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 5
    [5] => 6
    [7] => 8
    [9] => 10
)

De unset() functie verwijdert de opgegeven elementen uit de array, waarbij de resterende elementen intact blijven. De indexen van de array worden niet automatisch opnieuw geïndexeerd.

Functie Beschrijving
unset() Verwijdert een element uit een array op basis van zijn sleutel
unset($array[key]) Verwijdert een enkel element uit een array
unset($array[key1], $array[key2], ...) Verwijdert meerdere elementen uit een array

Elementen uit een array verwijderen met array_splice()

Elementen verwijderen met array_splice()

De array_splice() functie in PHP laat je elementen uit een array verwijderen door de startindex en het aantal te verwijderen elementen te specificeren. Deze functie wijzigt de originele array en geeft de verwijderde elementen terug als een nieuwe array.

Hier is een voorbeeld dat laat zien hoe je array_splice() gebruikt om elementen uit een array te verwijderen:

$fruits = array("apple", "banana", "orange", "grape", "kiwi");
$removed_fruits = array_splice($fruits, 2, 2);
print_r($fruits);
print_r($removed_fruits);

In dit voorbeeld hebben we een array $fruits met vijf elementen. We gebruiken array_splice() om twee elementen te verwijderen vanaf index 2 (het derde element). De eerste parameter specificeert de array, de tweede parameter is de startindex, en de derde parameter is het aantal te verwijderen elementen.

Na het gebruik van array_splice(), zal de $fruits array de resterende elementen bevatten:

Array
(
    [0] => apple
    [1] => banana
    [2] => kiwi
)

De verwijderde elementen worden teruggegeven als een nieuwe array, die wordt opgeslagen in de $removed_fruits variabele:

Array
(
    [0] => orange
    [1] => grape
)

De array opnieuw indexeren na gebruik van array_splice()

Het is belangrijk om te weten dat array_splice() de array automatisch opnieuw indexeert na het verwijderen van elementen. De resterende elementen worden verschoven om de gaten gevuld door de verwijderde elementen op te vullen, en de indexen van de array worden bijgewerkt.

Hier is een voorbeeld dat het opnieuw indexeringsgedrag van array_splice() laat zien:

$numbers = array(5, 10, 15, 20, 25);
array_splice($numbers, 1, 3);
print_r($numbers);

In dit voorbeeld verwijderen we drie elementen vanaf index 1 (het tweede element) uit de $numbers array met array_splice(). Na het verwijderen van de elementen, wordt de array opnieuw geïndexeerd:

Array
(
    [0] => 5
    [1] => 25
)

De resterende elementen worden verschoven om de gaten op te vullen, en de indexen van de array worden bijgewerkt.

Example

  1. Een takenlijst beheren: Stel je voor dat je een array hebt die een takenlijst vertegenwoordigt, en je wilt voltooide taken uit de lijst verwijderen. Je kunt array_splice() gebruiken om de voltooide taken te verwijderen door hun indexen te specificeren.

    $todo_list = array("Buy groceries", "Finish project", "Call client", "Attend meeting");
    $completed_tasks = array(1, 3);
    foreach ($completed_tasks as $index) {
       array_splice($todo_list, $index, 1);
    }
    print_r($todo_list);

    Output:

    Array
    (
       [0] => Buy groceries
       [1] => Call client
    )
  2. Dubbele elementen verwijderen: Als je een array hebt met dubbele elementen en je wilt de duplicaten verwijderen, kun je array_splice() met array_unique() gebruiken om dit te doen.

    $numbers = array(1, 2, 3, 2, 4, 3, 5);
    $unique_numbers = array_unique($numbers);
    $duplicate_indexes = array_diff_key($numbers, $unique_numbers);
    foreach ($duplicate_indexes as $index => $value) {
       array_splice($numbers, $index, 1);
    }
    print_r($numbers);

    Output:

    Array
    (
       [0] => 1
       [1] => 2
       [2] => 3
       [4] => 4
       [6] => 5
    )
Functie Beschrijving
array_splice() Verwijdert elementen uit een array en geeft ze terug als een nieuwe array
array_splice($array, $start, $length) Verwijdert $length elementen uit $array vanaf index $start
$removed_elements = array_splice($array, $start, $length) Wijst de verwijderde elementen toe aan $removed_elements

Elementen uit een associatieve array verwijderen

Elementen uit een associatieve array verwijderen met unset()

In PHP kun je elementen uit een associatieve array verwijderen met behulp van de unset() functie door de sleutel van het element dat je wilt verwijderen te specificeren. De unset() functie verwijdert het sleutel-waarde paar uit de array.

Hier is een voorbeeld dat laat zien hoe je een element uit een associatieve array verwijdert met unset():

$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York",
    "country" => "USA"
);

unset($person["city"]);

print_r($person);

In dit voorbeeld hebben we een associatieve array genaamd $person die de informatie van een persoon vertegenwoordigt. Elk sleutel-waarde paar in de array komt overeen met een specifiek attribuut van de persoon.

Om het "city" element uit de $person array te verwijderen, gebruiken we de unset() functie en geven we de array variabele door gevolgd door de sleutel tussen vierkante haken: unset($person["city"]). Dit verwijdert het sleutel-waarde paar waar de sleutel "city" is.

Na het verwijderen van het element, wordt de print_r() functie gebruikt om de bijgewerkte $person array te tonen:

Array
(
    [name] => John
    [age] => 30
    [country] => USA
)

Zoals je kunt zien, is het "city" element verwijderd uit de array, en de resterende sleutel-waarde paren worden behouden.

Het is belangrijk om te weten dat wanneer je een element uit een associatieve array verwijdert met unset(), de structuur van de array hetzelfde blijft. De sleutels van de resterende elementen worden niet gewijzigd, en er vindt geen herindexering plaats.

Je kunt meerdere elementen uit een associatieve array verwijderen door meerdere sleutels te specificeren in afzonderlijke unset() instructies:

unset($person["age"], $person["country"]);

Deze instructie verwijdert zowel de "age" als "country" elementen uit de $person array.

Het gebruik van unset() is een eenvoudige manier om elementen uit een associatieve array te verwijderen wanneer je de specifieke sleutels kent die je wilt verwijderen.

Functie Beschrijving
unset() Verwijdert een element uit een associatieve array op basis van zijn sleutel
unset($array[key]) Verwijdert het sleutel-waarde paar uit $array waar de sleutel gespecificeerd is

Example: Een product uit een winkelwagen verwijderen

Stel je voor dat je een online winkelwagen hebt geïmplementeerd als een associatieve array, waarbij elke sleutel een product-ID vertegenwoordigt en de bijbehorende waarde de hoeveelheid van dat product in de winkelwagen vertegenwoordigt. Als een gebruiker besluit een product uit zijn winkelwagen te verwijderen, kun je unset() gebruiken om het bijbehorende sleutel-waarde paar te verwijderen.

$shoppingCart = array(
    "item1" => 2,
    "item2" => 1,
    "item3" => 3
);

unset($shoppingCart["item2"]);

print_r($shoppingCart);

Output:

Array
(
    [item1] => 2
    [item3] => 3
)

In dit voorbeeld wordt het "item2" product verwijderd uit de $shoppingCart array met behulp van unset().

Example: Een gebruiker uit een gebruikersdatabase verwijderen

Overweeg een situatie waarin je een gebruikersdatabase hebt opgeslagen als een associatieve array, met gebruikers-ID's als sleutels en gebruikersinformatie als waarden. Als je een gebruiker uit de database moet verwijderen, kun je unset() gebruiken om het bijbehorende sleutel-waarde paar te verwijderen.

$userDatabase = array(
    "user1" => array("name" => "John", "email" => "john@example.com"),
    "user2" => array("name" => "Jane", "email" => "jane@example.com"),
    "user3" => array("name" => "Bob", "email" => "bob@example.com")
);

unset($userDatabase["user2"]);

print_r($userDatabase);

Output:

Array
(
    [user1] => Array
        (
            [name] => John
            [email] => john@example.com
        )

    [user3] => Array
        (
            [name] => Bob
            [email] => bob@example.com
        )
)

In dit voorbeeld wordt de gebruiker met ID "user2" verwijderd uit de $userDatabase array met behulp van unset().

array_diff() gebruiken om elementen uit een array te verwijderen

Een nieuwe array maken zonder specifieke elementen

PHP's array_diff() functie maakt een nieuwe array aan die alle elementen uit de eerste array bevat die niet aanwezig zijn in een van de andere arrays die als parameters zijn doorgegeven. Deze functie kan elementen uit een array verwijderen door een nieuwe array te maken zonder de opgegeven elementen.

Hier is een voorbeeld dat laat zien hoe je array_diff() gebruikt om elementen uit een array te verwijderen:

$original_array = array("apple", "banana", "orange", "grape", "kiwi");
$elements_to_remove = array("banana", "grape");
$new_array = array_diff($original_array, $elements_to_remove);
print_r($new_array);

In dit voorbeeld hebben we een array genaamd $original_array die vijf elementen bevat. We hebben ook een andere array $elements_to_remove die de elementen specificeert die we uit $original_array willen verwijderen.

We gebruiken de array_diff() functie om een nieuwe array $new_array te maken die alle elementen uit $original_array bevat die niet aanwezig zijn in $elements_to_remove. De eerste parameter van array_diff() is de originele array, en de tweede parameter is de array met te verwijderen elementen.

Na het uitvoeren van deze code, zal de $new_array de volgende elementen bevatten:

Array
(
    [0] => apple
    [2] => orange
    [4] => kiwi
)

De array_diff() functie verwijderde de "banana" en "grape" elementen uit $original_array en gaf een nieuwe array terug met de resterende elementen.

Het is belangrijk om te weten dat array_diff() de waarden van de arrays vergelijkt, niet de sleutels. De resulterende array zal nieuwe numerieke sleutels hebben vanaf nul, zelfs als de originele array string of niet-opeenvolgende sleutels had.

Je kunt array_diff() ook gebruiken met meerdere arrays om elementen te verwijderen die aanwezig zijn in een van de andere arrays:

$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "blueberry", "d" => "date");
$array3 = array("a" => "apricot", "b" => "banana", "e" => "elderberry");
$result = array_diff($array1, $array2, $array3);
print_r($result);

In dit voorbeeld vergelijkt array_diff() $array1 met $array2 en $array3 en geeft een nieuwe array terug die de elementen uit $array1 bevat die niet aanwezig zijn in $array2 of $array3:

Array
(
    [c] => cherry
)

De array_diff() functie kan erg nuttig zijn wanneer je een array moet filteren op basis van specifieke waarden zonder de originele array te wijzigen. Het geeft je de flexibiliteit om een nieuwe array te genereren met alleen de gewenste elementen.

Functie Beschrijving
array_diff() Maakt een nieuwe array aan die elementen uit de eerste array bevat die niet aanwezig zijn in een van de andere arrays
$result = array_diff($array1, $array2, ...) Wijst de resulterende array toe aan $result

Example: Een lijst met e-mailadressen filteren

Stel je voor dat je een lijst met e-mailadressen hebt en je wilt specifieke e-mailadressen uit de lijst verwijderen. Je kunt array_diff() gebruiken om een nieuwe array te maken zonder de opgegeven e-mailadressen.

$email_list = array("john@example.com", "jane@example.com", "bob@example.com", "alice@example.com");
$blocked_emails = array("jane@example.com", "bob@example.com");
$filtered_emails = array_diff($email_list, $blocked_emails);
print_r($filtered_emails);

Output:

Array
(
    [0] => john@example.com
    [3] => alice@example.com
)

In dit voorbeeld wordt array_diff() gebruikt om de $email_list array te filteren door de e-mailadressen die gespecificeerd zijn in de $blocked_emails array te verwijderen. De resulterende $filtered_emails array bevat alleen de e-mailadressen die niet geblokkeerd zijn.

Example: Twee arrays vergelijken en de verschillen vinden

Als je twee arrays hebt en je wilt de elementen vinden die aanwezig zijn in de eerste array maar niet in de tweede array, kun je array_diff() gebruiken.

$array1 = array("apple", "banana", "orange", "grape");
$array2 = array("banana", "kiwi", "pear");
$diff = array_diff($array1, $array2);
print_r($diff);

Output:

Array
(
    [0] => apple
    [2] => orange
    [3] => grape
)

Hier vergelijkt array_diff() $array1 met $array2 en geeft een nieuwe array $diff terug die de elementen uit $array1 bevat die niet aanwezig zijn in $array2. Dit is nuttig wanneer je de unieke elementen in een array wilt vinden in vergelijking met een andere.

Het eerste of laatste element uit een array verwijderen in PHP

Het laatste element verwijderen met array_pop()

De array_pop() functie in PHP verwijdert het laatste element uit een array en geeft de waarde van het verwijderde element terug. Deze functie wijzigt de originele array door het laatste element te verwijderen en de array met één element in te korten.

Hier is een voorbeeld dat laat zien hoe je het laatste element uit een array verwijdert met array_pop():

$fruits = array("apple", "banana", "orange", "grape");
$removed_fruit = array_pop($fruits);
echo "Removed fruit: " . $removed_fruit . "\n";
print_r($fruits);

In dit voorbeeld hebben we een array $fruits met vier elementen. We gebruiken de array_pop() functie om het laatste element uit de array te verwijderen. Het verwijderde element wordt opgeslagen in de $removed_fruit variabele.

Na het uitvoeren van deze code, zal de output zijn:

Removed fruit: grape
Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)

De array_pop() functie verwijderde het laatste element "grape" uit de $fruits array en gaf zijn waarde terug. De $fruits array wordt vervolgens afgedrukt met print_r(), wat laat zien dat het nu alleen drie elementen bevat.

Het is belangrijk om te weten dat array_pop() de waarde van het verwijderde element teruggeeft, die je kunt opslaan in een variabele of direct kunt gebruiken. Als de array leeg is, geeft array_pop() null terug.

Example: Recente gebruikersacties bijhouden

Laten we zeggen dat je de meest recente acties wilt bijhouden die door een gebruiker zijn uitgevoerd, met een limiet op het aantal op te slaan acties. Je kunt array_pop() gebruiken om de oudste actie te verwijderen wanneer de limiet wordt overschreden.

$recentActions = array();
$maxActions = 5;

function addRecentAction($action) {
    global $recentActions, $maxActions;

    if (count($recentActions) >= $maxActions) {
        array_pop($recentActions);
    }

    array_unshift($recentActions, $action);
}

addRecentAction("Logged in");
addRecentAction("Viewed profile");
addRecentAction("Updated settings");
addRecentAction("Submitted form");
addRecentAction("Logged out");
addRecentAction("Logged in");

print_r($recentActions);

Output:

Array
(
    [0] => Logged in
    [1] => Logged out
    [2] => Submitted form
    [3] => Updated settings
    [4] => Viewed profile
)

In dit voorbeeld wordt de addRecentAction() functie gebruikt om nieuwe acties toe te voegen aan de $recentActions array. Als het aantal acties de $maxActions limiet overschrijdt, wordt array_pop() gebruikt om de oudste actie uit het einde van de array te verwijderen. Op deze manier worden alleen de meest recente acties bewaard, en de oudere worden verwijderd.

Het eerste element verwijderen met array_shift()

Vergelijkbaar met array_pop(), verwijdert de array_shift() functie het eerste element uit een array en geeft de waarde van het verwijderde element terug. Deze functie wijzigt ook de originele array door het eerste element te verwijderen en alle resterende elementen te verschuiven om de lege ruimte op te vullen.

Hier is een voorbeeld dat het verwijderen van het eerste element uit een array demonstreert met array_shift():

$numbers = array(10, 20, 30, 40, 50);
$removed_number = array_shift($numbers);
echo "Removed number: " . $removed_number . "\n";
print_r($numbers);

In dit voorbeeld hebben we een array $numbers met vijf elementen. We gebruiken de array_shift() functie om het eerste element uit de array te verwijderen. Het verwijderde element wordt opgeslagen in de $removed_number variabele.

Na het uitvoeren van deze code, zal de output zijn:

Removed number: 10
Array
(
    [0] => 20
    [1] => 30
    [2] => 40
    [3] => 50
)

De array_shift() functie verwijderde het eerste element "10" uit de $numbers array en gaf zijn waarde terug. De $numbers array wordt vervolgens afgedrukt met print_r(), wat laat zien dat het nu de resterende vier elementen bevat, met hun indexen dienovereenkomstig verschoven.

Net als array_pop(), geeft array_shift() de waarde van het verwijderde element terug. Als de array leeg is, geeft array_shift() null terug.

Example: Een wachtrij verwerken

Stel je voor dat je een wachtrij van taken hebt die wordt weergegeven als een array, en je wilt de taken verwerken in de volgorde waarin ze zijn toegevoegd. Je kunt array_shift() gebruiken om de eerste taak uit de wachtrij te verwijderen en op te halen.

$taskQueue = array("Task 1", "Task 2", "Task 3", "Task 4");

while (!empty($taskQueue)) {
    $currentTask = array_shift($taskQueue);
    echo "Processing task: " . $currentTask . "\n";
    // Voer hier taakverwerking uit
}

Output:

Processing task: Task 1
Processing task: Task 2
Processing task: Task 3
Processing task: Task 4

In dit voorbeeld wordt array_shift() gebruikt om de eerste taak uit de $taskQueue array te verwijderen en op te halen in elke iteratie van de lus. Dit maakt het mogelijk om de taken te verwerken in de volgorde waarin ze aan de wachtrij zijn toegevoegd.

Functie Beschrijving
array_pop() Verwijdert het laatste element uit een array en geeft zijn waarde terug
array_shift() Verwijdert het eerste element uit een array, verschuift de resterende elementen, en geeft de waarde van het verwijderde element terug