PHP编程中,有时候需要对数组中指定的元素进行删除操作。这篇文章就说几种php语言中如何对数组中指定值的元素进行删除的方法。

PHP删除数组中指定值的元素的方法

PHP unset() 函数

PHP删除数组中的元素需要用到函数 unset() 

unset():用于销毁指定的变量。

语法:

unset (var)

var:要销毁的变量

PHP删除数组中指定值的元素的方法

方法1:

$array = array('a','b','c','d');
foreach ($array as $key => $a) {
    if($a == 'b'){
        unset($array[$key]);
    }
}
var_dump($array);

打印结果:

array(3) {
  [0]=>
  string(1) "a"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
}

方法2:

编写自定义函数,并进行调用

function delarrayval($arr,$v){
    //要判断传入的数据类型是否为数组
    if(!is_array($arr)){
        return false;
    }
    if(!$v){
        return $arr;
    }
    foreach ($arr as $key => $a) {
        if($a == $v){
            unset($arr[$key]);
        }
    }
    return $arr;
}

调用函数:

$array = array(
    'aa' => 'a',
    'bb' => 'b',
    'cc' => 'c',
    'dd' => 'd'
);
$arr2 = delarrayval($array,'b');
//打印结果
var_dump($arr2);

打印结果:

array(3) {
  ["aa"]=>
  string(1) "a"
  ["cc"]=>
  string(1) "c"
  ["dd"]=>
  string(1) "d"
}

注意:打印的结果中,含有值“b”的数组元素已被删除掉。

方法3:

利用 array_keys() 函数查找数组的键名,并进行删除

自定义函数代码

function delarrayval2($arr,$v){
    $keyarr = array_keys($arr, $v);  
    if(count($keyarr)){  
        foreach ($keyarr as $key) {  
            unset($arr[$key]);  
        }
    }  
    return $arr;
}

调用函数:

$array = array('a','b','c','d');
var_dump(delarrayval2($array,'b'));

打印结果:

array(3) {
  [0]=>
  string(1) "a"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
}