今天介紹幾個 php 從數組中刪除元素的幾個方法的實例,要用到 unset()、array_splice()、array_diff()以及array_diff_key() 等函數。下面就來詳細的說一說它們的使用方法。

php nuset() 函數刪除數組元素

国产视频appunset() 函數可以銷毀數組中指定的元素,并且不會改變數組的索引順序。

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() 函數刪除數組的元素

国产视频apparray_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() 函數刪除數組元素

国产视频apparray_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
)