Как удалить элемент внутри массива, используя функцию 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...
Вы только удаляете элемент массива внутри ваша функция, но переменная за ее пределами не редактируется. Кроме того, вы не используете согласованную переменную внутри функции (где $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']
Для этого используйте метод передачи по ссылке. Этот метод используется только тогда, когда вы хотите удалить из исходного массива.
$fruits = ["banana", "apple", "kiwi", "pear"];
function deleteFromArray(&$arr) {
unset($arr[0]);
}
deleteFromArray($fruits);
print_r($fruits);