1、(unset)删除一个元素,且保持原有索引不变

// 删除键为 1 的元素
$array = array(0 => "a", 1 => "b", 2 => "c");
unset($array[1]);
print_r($array); // 打印 [0=>'a',2=>'c']


注:使用 unset 并未改变数组的原有索引。可以使用 array_values 函数重排索引。


2、(array_splice)删除一个元素,不保持索引

// 删除键为 1 的元素
$array = array(0 => "a", 1 => "b", 2 => "c");
array_splice($array, 1, 1);

print_r($array); // 打印 [0=>'a',1=>'c']


3、(array_diff)按值删除多个元素,保持索引

// 删除你要删除的值,例删除值为 a 和 c 的元素
$array = array(0 => "a", 1 => "b", 2 => "c");
$array = array_diff($array, ["a", "c"]);

print_r($array); // 打印 [1 => 'b']


4、(array_diff_key)按键删除多个元素,保持索引。

// 删除你要删除的值,例删除值为
$array = array(0 => "a", 1 => "b", 2 => "c");
$noneed = [0 => "xy", "2" => "xy"];
$array = array_diff_key($array, $noneed);

print_r($array); // 打印 [1 => "b"]