如何从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
)