188金宝搏官网PHP删除特定数组内容并且重建数组索引的方法.

复制代码 代码如下:
$a = array(‘a’,’b’,’c’,’d’);
unset($a[2]);
print_r($a);

如果我们知道数组元素的名字这个就好办了

但是这种方法的最大缺点是没有重建数组索引.

按键名来删除数组中指定数组元素

经过查资料后.原来PHP提供了这个功能.只不过很间接..

 代码如下

这个函数是array_splice.

$barray =
array(‘a’=>1,’b’=>2,’wod’=>3,’c’=>4,’abc’=>5);
$del =’b’;
unset($barray[$del]);//结果为

为了使用方便.我封装成了一个函数.方便大家使用.
复制代码 代码如下:
function array_remove(&$arr,$offset){
array_splice($arr,$offset,1);
}
$a = array(‘a’,’b’,’c’,’d’);
array_remove($a,2);
print_r($a);

Array
(
    [a] => 1
    [wod] => 3
    [c] => 4
    [abc] => 5
)

经过测试可以知道.2的位置这个元素被真正的删除了.并且重新建立了索引.

如果有多个数组要同时删除,上面办法是解决不了,我们可以利用array_diff函数来操作

 代码如下

$a1=array(“Cat”,”Dog”,”Horse”,’dff’,’dfdf’,’www’);
$a2=array(“dff”,”Horse”,”Dog”);
$a1 = array_diff($a1,$a2);
sort($a1);
print_r($a1);

Array
(
    [0] => Cat
    [1] => dfdf
    [2] => www
)

例2

array_search() 函数与 in_array()
一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回
false

 代码如下

$array = array(‘1’, ‘2’, ‘3’, ‘4’, ‘5’);

$del_value = 3;
unset($array[array_search($del_value ,
$array)]);//利用unset删除这个元素

print_r($array);

输出

发表评论

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