This question already has answers here:
Deleting an element from an array in PHP

(39个答案)


2年前关闭。




我在php中有一个数组
<?php
$array=array("a"=>"123","b"=>"234","c"=>"345");
array_shift($array);
//array("0"=>"234","1"=>"345");
?>

如果使用此功能,则键值会更改。我希望我的键值保持不变。如何在不影响数组键值的情况下删除第一个元素。
我的答案应该像
array("b"=>"234","c"=>"345");

注意:请不要使用foreach();我想通过php中的现有数组函数来做到这一点

array_splice函数适用于上述数组。但是考虑下面的数组
<?php
$array = Array
(
    '39' => Array
        (
            'id' => '39',
            'field_id' => '620'

        ),

    '40' => Array
        (
            'id' => '40',
            'field_id' => '620',
            'default_value' => 'rrr',

));

array_splice($array, 0, 1);
print_r($array);
?>

它显示答案如下:
Array ( [0] => Array ( [id] => 40 [field_id] => 620 [default_value] => rrr ) )

我可以知道原因吗? array_splice()仅适用于一维数组吗?现在,键值已重置...

最佳答案

如果您不知道第一项的key是什么:

// Make sure to reset the array's current index
reset($array);

$key = key($array);
unset($array[$key]);

10-04 23:31
查看更多