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

时间:2017-01-16 10:15:50

标签: 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 without any changes...

2 个答案:

答案 0 :(得分:5)

你只是在你的函数中取消 数组的元素,但是它之外的变量没有被编辑。另外,你没有在函数内使用一致变量($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']

答案 1 :(得分:4)

对于此用途,通过引用方法传递。此方法仅在您要从原始数组中删除时使用。     

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

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

deleteFromArray($fruits);

print_r($fruits);