如何在不删除键的情况下删除数组元素

时间:2014-09-16 12:39:12

标签: php arrays

我尝试使用PHP的unset()内置函数从我的PHP脚本中删除一些数组元素。
这是代码,我试过。

<?php

$my_array = array('.','..','one','two','three','four');

unset($my_array[1] , $my_array[0]);

echo '<pre>';

print_r($my_array);

echo '</pre>';

?>

然后我得到了这个输出。

Array
(
    [2] => one
    [3] => two
    [4] => three
    [5] => four
)

但这不是我所期待的。我想要这样的事情。

Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
)

我怎么能做到这一点?感谢。

6 个答案:

答案 0 :(得分:4)

是的,这是正确的行为,如果你想重置你可以使用的密钥array_values()

$my_array = array('.','..','one','two','three','four');
unset($my_array[1] , $my_array[0]);
$my_array = array_values($my_array);

答案 1 :(得分:1)

unset($my_array[1] , $my_array[0]);
$my_array = array_values($my_array);

答案 2 :(得分:1)

使用array_shift()函数从数组中删除第一个元素(红色),并返回已删除元素的值。除了你以外,我们可以获得输出。

$a=array('.','..','one','two','three','four');
array_shift($a); //array('..','one','two','three','four');
array_shift($a); // array('one','two','three','four');

使用array_pop()函数删除数组的最后一个元素。除了你以外,我们可以获得输出。

$a=array('.','..','one','two','three','four');
array_pop()($a); // array('.','..','one','two','three');
array_pop()($a); // array('.','..','one','two');

使用此功能,每次都会从零开始索引数组。 否则使用

$a= array('.','..','one','two','three','four');
unset($a[1] , $a[0]);
print_r(array_values(a));

答案 3 :(得分:0)

$my_array = array('.','..','one','two','three','four');

unset($my_array[1] , $my_array[0]);

echo '<pre>';

print_r(array_values($my_array));

echo '</pre>';

答案 4 :(得分:0)

实际上,你可以在另一个问题中找到你的问题的答案:
rearrange array keys php

就像有人告诉我的那样,array_values会为你做到这一点。

$arr = array_values($arr);

答案 5 :(得分:0)

使用array_values功能:

  

来自http://php.net/manual/en/function.array-values.php