Heim  >  Artikel  >  Backend-Entwicklung  >  So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

青灯夜游
青灯夜游Original
2022-09-26 18:12:593554Durchsuche

两种去除方法:1、利用array_splice()函数,只需要将该函数的第二个参数设置为指定下标,第三参数设置为1即可,语法“array_splice($arr, 指定下标,1)”。2、利用“$数组名[下标]”语句和unset()函数,语法“unset($arr[指定下标])”。

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

在php中,可以利用array_splice()函数或unset()函数来去除一个指定下标的元素。

方法1:利用array_splice()函数

array_splice()是一个强大的函数,有多重功能:可以插入数组元素、可以替换数组元素,当然也可以删除数组元素(毕竟array_splice()函数的本职工作是删除指定元素并用其它值取代)。

array_splice()函数可以从指定位置开始删除指定个数的元素。

array_splice($array,$start,$length)
参数 描述
array 必需。规定数组。
start 必需。数值。规定删除元素的开始位置。    0 = 第一个元素。    如果该值设置为正数,则从数组中该值指定的偏移量开始移除。如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。    -2 意味着从数组的倒数第二个元素开始。
length 可选。数值。规定被移除的元素个数,也是被返回数组的长度。    如果该值设置为正数,则移除该数量的元素。如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。    

只需要将该函数的第二个参数$start设置为指定下标,第三参数$length设置为1(删除一个元素)即可。

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(&#39;one&#39;,&#39;two&#39;,&#39;three&#39;,&#39;php&#39;);
var_dump($arr);

//删除下标为2的元素
array_splice($arr,2,1);
echo "删除指定下标的一个元素后:";
var_dump($arr);
?>

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

可以看到,array_splice()函数会重置下标。

array_splice()函数的参数说明:

array_splice($arr,$start)会删除从$start位置开始的所有元素删除。

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array(10,12,20,25,24);
echo "原数组:";
var_dump($arr);

echo "删除后的数组:" ;
array_splice($arr,2);
var_dump($arr);
?>

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

$start参数有三种取值情况:

  • 为正数,那么从$start位置开始,往后删除;

  • 为0,那么从第一个元素开始,往后删除;

  • 为负数,则从距离 $arr 末端 -start 的位置开始,从后往前删除。例如 -2 意味着从数组的倒数第二个元素开始。

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array(10,12,20,25,24);
echo "原数组:";
var_dump($arr);

echo "删除后的数组:" ;
array_splice($arr,-2);
var_dump($arr);
?>

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

array_splice()函数是强大的,可以删除多个元素,也可只删除一个元素,那就需要给该函数指定一个$length参数(第三个参数),该参数用来规定删除的元素个数。

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array(10,12,20,25,24);
echo "原数组:";
var_dump($arr);

echo "删除后的数组:" ;
array_splice($arr,2,1);
var_dump($arr);
?>

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

$length参数也有三种取值情况:

  • 为正数,那么就表示删除 length 个元素;

  • 为负数,那么将删除从 start 开始,到数组末尾倒数 length 为止的所有元素;

  • 如果省略,那么将删除从 start 开始,一直到数组末尾的所有元素。

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array(10,12,20,25,24);
echo "原数组:";
var_dump($arr);

echo "删除后的数组:" ;
array_splice($arr,2,-1);
var_dump($arr);
?>

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

$length参数还可以为0,那么就表示不删除元素,可以和该函数的第四个参数$value相配合,进行插入操作(这里就不做具体介绍了)。

方法2:利用“$数组名[下标]”语句和unset()函数

  • $数组名[下标] 语句可以访问指定下标的一个元素

  • 而unset()函数可以删除指定下标(键名)的一个数组元素,即删除访问到的一个元素

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
  $arr = array(0 => "a", 1 => "b", 2 => "c");
  echo "原数组:";
  var_dump($arr);
  echo "删除指定下标的一个元素后:" ;
  unset($arr[1]);
          //↑ 你想删除的key(下标)
  var_dump($arr);
?>

So entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array

说明:

unset()函数允许取消一个数组中的元素,但数组并不会重建索引,即保持原有索引,因为php中的索引具有特殊的含义。

推荐学习:《PHP视频教程》、《PHP ARRAY

Das obige ist der detaillierte Inhalt vonSo entfernen Sie ein Element mit einem angegebenen Index aus einem PHP-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Kann PHP ein Array definieren?Nächster Artikel:Kann PHP ein Array definieren?