📜  如何从PHP中的数组中删除元素?

📅  最后修改于: 2022-05-13 01:56:19.613000             🧑  作者: Mango

如何从PHP中的数组中删除元素?

在PHP中有多种方法可以从数组中删除元素。本文讨论了PHP中用于从数组中删除元素的一些最常用的方法。

使用的功能:

  • unset() 此函数将元素作为参数并取消设置。它不会改变其他元素的键。
  • array_splice():此函数接受三个参数:数组、偏移量(从哪里开始)和长度(要删除的元素数)。删除元素后,它将自动重新索引索引数组而不是关联数组。
  • 数组差异(): 此函数将数组和数组值列表作为输入,并从数组中删除给定值。和unset()方法一样,它不会改变其他元素的键。

使用的步骤:

  • 声明一个关联的数组。
  • 从数组中删除元素。
  • 打印结果。
  • 声明一个索引数组。
  • 从索引数组中删除一个元素。
  • 打印结果。

示例 1:此示例使用unset()函数删除元素。 unset()函数将数组作为引用并且不返回任何内容。

PHP
"Geeks", "b"=>"For", "c"=>"Geeks"];
 
  // Deleting element associated with key "b"
  unset($ass_arr["b"]);
 
  // Printing array after deleting the element
  print_r($ass_arr);
 
  // Declaring indexed array
  $ind_arr = ["Geeks","For","Geeks"];
 
  // Deleting element and index 1
  unset($ind_arr[1]);
 
  // Printing array after deleting the element
  print_r($ind_arr);
?>


PHP
"Geeks", "b"=>"For", "c"=>"Geeks"];
 
  // Deleting element associated with key "b"
  array_splice($ass_arr,1,1);
 
  // Printing array after deleting the element
  print_r($ass_arr);
 
  // Declaring indexed array
  $ind_arr = ["Geeks","For","Geeks"];
 
  // Deleting element and index 1
  array_splice($ind_arr,1,1);
 
  // Printing array after deleting the element
  print_r($ind_arr);
?>


PHP
"Geeks", "b"=>"For", "c"=>"Geeks"];
 
  // Deleting element associated with key "b"
  $ass_arr = array_diff($ass_arr,["For"]);
 
  // Printing array after deleting the element
  print_r($ass_arr);
 
  // Declaring indexed array
  $ind_arr = ["Geeks","For","Geeks"];
 
  // Deleting element and index 1
  $ind_arr = array_diff($ind_arr,["For"]);
 
  // Printing array after deleting the element
  print_r($ind_arr);
?>


输出
Array
(
    [a] => Geeks
     => Geeks
)
Array
(
    [0] => Geeks
    [2] => Geeks
)

从输出中我们可以看到unset()没有改变索引数组中其他元素的索引。

示例 2:此示例使用array_splice()函数从数组中删除元素。

PHP

"Geeks", "b"=>"For", "c"=>"Geeks"];
 
  // Deleting element associated with key "b"
  array_splice($ass_arr,1,1);
 
  // Printing array after deleting the element
  print_r($ass_arr);
 
  // Declaring indexed array
  $ind_arr = ["Geeks","For","Geeks"];
 
  // Deleting element and index 1
  array_splice($ind_arr,1,1);
 
  // Printing array after deleting the element
  print_r($ind_arr);
?>
输出
Array
(
    [a] => Geeks
     => Geeks
)
Array
(
    [0] => Geeks
    [1] => Geeks
)

示例 3:此示例使用array_diff()函数删除元素。请注意,数组值作为第二个参数而不是索引传递。此函数通过值而不是引用获取数组参数,并返回一个数组作为输出。

PHP

"Geeks", "b"=>"For", "c"=>"Geeks"];
 
  // Deleting element associated with key "b"
  $ass_arr = array_diff($ass_arr,["For"]);
 
  // Printing array after deleting the element
  print_r($ass_arr);
 
  // Declaring indexed array
  $ind_arr = ["Geeks","For","Geeks"];
 
  // Deleting element and index 1
  $ind_arr = array_diff($ind_arr,["For"]);
 
  // Printing array after deleting the element
  print_r($ind_arr);
?>


输出
Array
(
    [a] => Geeks
     => Geeks
)
Array
(
    [0] => Geeks
    [2] => Geeks
)