如何使用PHP中的函数从全局数组中删除项
如何使用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
$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);