明凯博客

关注网站技术,一个特立独行的程序员

php数组中删除元素之重新索引的三种方法

如果要在某个数组中删除一个元素,可以直接用的unset。

1
2
3
4
5
6
< ?php  
$arr = array('a','b','c','d');  
unset($arr[1]);  
echo $array[1]; // error Undefined offset
print_r($arr);  
?>

print_r($arr)最终结果是 Array ( [0] => a [2] => c [3] => d )

那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?

有三种方法。
第一种方法:array_values
array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
< ?php  
$arr = array('a','b','c','d');  
unset($arr[1]);
$arr = array_values($arr);
print_r($arr);
// 输出如下
/**
Array
(
    [0] => a
    [1] => c
    [2] => d
)
?>

二、第二种方法:array_splice()
array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
< ?php  
$arr = array('a','b','c','d');  
unset($arr[1]);
array_splice($arr,0,0);  
print_r($arr);
// 输出如下
/**
Array
(
    [0] => a
    [1] => c
    [2] => d
)
?>

三、第三种方法:不使用unset
使用array_splice()的功能

1
2
3
4
5
< ?php  
$arr = array('a','b','c','d');  
array_splice($arr,1,1);  
print_r($arr); 
?>

print_r($arr)之后的结果是Array ( [0] => a [1] => c [2] => d )

, ,

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注