【发布时间】:2013-09-05 18:59:12
【问题描述】:
我在 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 = "a" 的元素?
-
@Ganesh:你在你的问题中给出了一个错误的例子。您在示例中展示的内容是错误的(尽管您仍然有意义)。
-
@Barmar 我想删除数组的第一个键及其值而不影响其他键值。我给出的问题就是一个例子。我需要处理这种数组。