Как удалить элементы из глобального массива с помощью функции переполнения стека

Как удалить элемент внутри массива, используя функцию PHP? Я пробовал следующее, но массив остается неизменным:

<?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

Решение

Вы только удаляете элемент массива внутри ваша функция, но переменная за ее пределами не редактируется. Кроме того, вы не используете согласованную переменную внутри функции (где $restродом из?).

Вы должны добавить возврат в вашу функцию, а затем использовать переменную для ее вызова:

<?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

Другие решения

Для этого используйте метод передачи по ссылке. Этот метод используется только тогда, когда вы хотите удалить из исходного массива.

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

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

deleteFromArray($fruits);

print_r($fruits);
4

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector