今天介绍几个 php 从数组中删除元素的几个方法的实例,要用到 unset()、array_splice()、array_diff()以及array_diff_key() 等函数。下面就来详细的说一说它们的使用方法。

php nuset() 函数删除数组元素

unset() 函数可以销毁数组中指定的元素,并且不会改变数组的索引顺序。

php代码:

<?php
$arr = array('a','b','c','d');
unset($arr[2]);
print_r($arr);
?>

打印结果:

Array
(
    [0] => a
    [1] => b
    [3] => d
)

注意:

使用 unset() 函数,删除数组的某个元素后,数组的索引并不会改变,如果数组的索引重新排序(从0开始重新排序),则使用 array_values() 函数即可。可参考下面的代码:

php代码:

<?php
$arr = array('a','b','c','d');
unset($arr[2]);
print_r($arr);
// array_values() 重新排序,生成新的数组
$array = array_values($arr);
print_r($array);
?>

打印结果:

Array
(
    [0] => a
    [1] => b
    [2] => d
)

php使用 array_splice() 函数删除数组的元素

array_splice():函数从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组。

php代码:

<?php
$arr = array('a','b','c','d');
array_splice($arr, 1, 1);//从第二个元素开始,删除一个元素
print_r($arr);
?>

打印结果:

Array
(
    [0] => a
    [1] => c
    [2] => d
)

注:关于 array_splice() 函数的详细说明,可查看本站的相关文章

php使用  array_diff() 函数删除数组元素

array_diff():函数用于比较两个或多个数组的值,并返回差集,当然也可以用来删除指定的数组

php代码:

<?php
$arr = array('a','b','c','d');
$array = array_diff($arr, ['a','c']);//删除指定值的元素(其它是比较返回差值)
print_r($array);
?>

打印结果:

Array
(
    [1] => b
    [3] => d
)

php array_diff_key 函数删除数组元素

array_diff_key():函数用于比较两个或多个数组的键名 ,并返回差集,这里我们可以用他来删除指定键的数组元素

示例1:

<?php
//这里没有定义键名,默认从0开始,依次递增
$arr = array('a','b','c','d');
$array = array_diff_key($arr, [0=>'a',1=>'c']);//删除指定键的元素(其它是比较返回差值)
print_r($array);
?>

打印结果:

Array
(
    [2] => c
    [3] => d
)

示例2:

<?php
//指定键名的数组
$arr = array('a'=>'a','b'=>'b','c'=>'c','d'=>'d');
$array = array_diff_key($arr, ['b'=>'a','d'=>'c']);//删除指定键的元素,元素的值任意(其它是比较返回差值)
print_r($array);
?>

打印结果:

Array
(
    [a] => a
    [c] => c
)