删除数组元素

删除数组元素

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 )
posted @ 2020-08-09 00:07  whyly  阅读(338)  评论(0编辑  收藏  举报