Comment supprimer un élément dans un tableau à l'aide d'une fonction PHP? J'ai essayé ce qui suit mais le tableau reste inchangé:

<?php

$fruits = ["banana", "apple", "kiwi", "pear"];

function deleteFromArray($arr) {
    unset($arr[0]);
    $arr = array_values( $arr );
}

deleteFromArray($fruits);

var_dump($fruits);
// returns the array without any changes...
2
Aziz 16 janv. 2017 à 13:15

2 réponses

Meilleure réponse

Vous ne désactivez que l'élément du tableau à l'intérieur de votre fonction, mais la variable à l'extérieur de celui-ci n'est pas modifiée. De plus, vous n'utilisez pas de variable cohérente à l'intérieur de la fonction (d'où vient $rest?).

Vous devez ajouter un retour à l'intérieur de votre fonction, puis utiliser votre variable pour l'appeler:

<?php

$fruits = array("banana", "apple", "kiwi", "pear");

function deleteFromArray($arr) {
    unset($arr[0]);
    $arr = array_values( $arr ); // Not $rest
    return $arr;
}

$fruits = deleteFromArray($fruits);

var_dump($fruits); // returns ['apple', 'kiwi', 'pear']
5
roberto06 16 janv. 2017 à 10:24

Pour cette utilisation, passez par la méthode de référence. Cette méthode n'est utilisée que lorsque vous souhaitez supprimer du tableau d'origine.

$fruits = ["banana", "apple", "kiwi", "pear"];

function deleteFromArray(&$arr) {
    unset($arr[0]);
}

deleteFromArray($fruits);

print_r($fruits);
4
Bharat Dangar 16 janv. 2017 à 10:33