如何使用PHP中的函数从全局数组中删除项

如何使用PHP中的函数从全局数组中删除项,php,arrays,Php,Arrays,如何使用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

如何使用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...

此方法使用“按引用传递”方法。此方法仅在要从原始数组中删除时使用。
$fruits = ["banana", "apple", "kiwi", "pear"];

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

deleteFromArray($fruits);

print_r($fruits);

您只是在函数内部取消设置数组的元素,但它外部的变量不会被编辑。另外,您没有在函数内部使用一致的变量(
$rest
从何而来?)

您必须在函数中添加一个return,然后使用变量调用它:

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

确保首先声明$rest,因为您的代码(以及OP)原因
注意:未定义变量:rest in..
此处没有使用$rest,因此我将其删除。此方法仅在您想从原始数组中删除时使用。@samayo谢谢您的评论。我很快忘记了该部分。@Bharatangar但是
数组_值
位对于重置数组键很重要,您不应该删除它;)@roberto06如果数组值很重要,那么您的方法是正确的。
$rest
是我的错误,我的意思是写
$arr
,我在问题中修复了它,无论如何,谢谢您的回答!
$fruits = ["banana", "apple", "kiwi", "pear"];

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

deleteFromArray($fruits);

print_r($fruits);