删除数组元素
删除数组元素
unset
unset删除数组元素,不会重建索引
//demo1
$arr = [1, 2, 3];
array_push($arr, 4);
unset($arr[count($arr) - 1]);
array_push($arr, 5);
print_r($arr); //Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 5 )
//demo2
$arr = [1, 2, 3];
unset($arr[1]);
print_r($arr); //Array ( [0] => 1 [2] => 3 )
array_splice
删除一部分元素,并且可以用指定元素替代,会重建索引(关联数组无效),详情参看文档。
$arr = [1, 2, 3];
array_splice($arr, 1, 1);
print_r($arr); //Array ( [0] => 1 [1] => 3 )
array_pop
删除最后一个元素(出栈),会重建索引
$arr = [1, 2, 3];
array_pop($arr);
array_push($arr, 4);
print_r($arr); //Array ( [0] => 1 [1] => 2 [2] => 4 )
array_shift
删除第一个元素,会重建索引
$arr = [1, 2, 3, 4];
array_shift($arr);
print_r($arr); //Array ( [0] => 2 [1] => 3 [2] => 4 )
array_diff
删除指定的一些元素,实际上求数组的差集,可以理解为第一个数组减去后面数组得到的数组
$arr = ['a', 'b', 'c', 'b', 'd'];
$new_arr = array_diff($arr, ['b', 'c']);
print_r($new_arr); //Array ( [0] => a [4] => d )
array_diff_key
根据key删除一些元素,实际上根据key求数组差集,和array_diff类似
$arr = [
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4
];
$arr1 = [
'b' => 23,
'd' => 33
];
$new_arr = array_diff_key($arr, $arr1);
print_r($new_arr); //Array ( [a] => 1 [c] => 3 )