php把索引数组的第一个元素移除后索引不重置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php把索引数组的第一个元素移除后索引不重置相关的知识,希望对你有一定的参考价值。

直接使用php内置函数unset,代码如下:

// 测试数组
$a1 = array(1,2,3);
// 删除索引数组第一个值$a1[0]
unset($a1[0]);
// 测试结果
echo "<pre>";
print_r($a1);
echo "</pre>";
exit;

结果为:

Array
(
   [1] => 2
   [2] => 3
)

参考技术A 如果要在某个数组中删除一个元素,可以直接用的unset
代码如下:
<?php
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>
print_r($arr)之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d )
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是
array_splice():
代码如下:
<?php
$arr = array('a','b','c','d');
array_splice($arr,1,1);
print_r($arr);
?>
print_r($arr)之后,结果是A(www.jb51.net)rray ( [0] => a [1] => c [2] => d )
删除数组指定元素
array_search()比较实用
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false
代码如下:
$array = array('1', '2', '3', '4', '5');
$del_value = 3;
unset($array[array_search($del_value , $array)]);//利用unset删除这个元素
print_r($array);
输出
array('1', '2', '4', '5');
但这种如果要重新索引数组就需要利用foreach遍历删除的数组之后重新建立一个数组这样也是可以的。
参考技术B //使用unset,直接删除,不重置索引
<?php
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>

//使用array_splice函数,移除并重置索引
<?php
$arr = array('a','b','c','d');
array_splice($arr,0,1);
print_r($arr);
?>

列表元祖字典集合,用法总结

1.列表:

  1> 增加:append() :追加单个元素,或者列表 

       extend():扩展

       insert(索引,插入的数据) :插入,在指定位置插入一个指定元素,原来的元素向后顺延

  2>删除:pop():弹出,移除指定列表指定下标的元素,若不指定索引值默认移除最后一个元素

      remove():移除指定的元素,从左往右检测,只移除匹配到的第一个元素

      clear() :清空列表

  3>修改:reverse() :反转

      sort() :排序,默认为程序,若要降序,可以先升序,在反转,或者将reverse = True

  4>查询:len():获取长度

      max():获取最大值

      min():获取最小值

      index():获取一个元素在指定列表中第一次出现的下表  列表的方法

      count():统计一个元素在列表中出现的次数 列表的方法

2.元祖:

元祖一旦被定义完成之后,就不能对其元素做任何修改

len():获取元素个数

max():获取元素的最大值

min():获取元素的最小值

列表和元祖的相互转化:

3.字典:

key 特点:1>唯一不能重复

     2>必须是不可变的,不能是列表

通过key查value注意的问题:

  方式一:字典名[key] 获取value ,若key不存在,会直接报错

  方式二:字典名.get(key) 若key不存在,则返回None

遍历:

方式一:for key in dict1:

      print(key, dict1[key])

方式二:for key in dict1.keys():

      print(key,dict[key])

方式三:for value in dict1.values():

      print(value)

方式四:for index,key in enumerate(dict1): #enumerate将字典转化为 (序号,key)形式

    print(index,key, dict1[key])

方式五:for key,value in dict1.items():

      print(key,value)

4.集合:

特点:不允许存储重复元素,无序。

创建空集合:set()

增加:s1.add()  #不能添加可变数据类型

更新:s1.update()  #类似于 list 中extend 方法 必须是可迭代的,打碎加入

   添加字典时候只能识别key

删除:s1.remove()

遍历:

  方式一:for i in s1:

  方式二: for i, num in  enumerate(s1):

        print(i, num)

交集和并集:r1 = set1 & set2  r2 = set1 | set2

 

以上是关于php把索引数组的第一个元素移除后索引不重置的主要内容,如果未能解决你的问题,请参考以下文章

取消设置操作后将PHP数组索引重置为从0开始[重复]

Leetcode练习(Python):数组类:第27题:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度

php 获取数组第一个key 第一个键值对 等等

numpy - 返回数组中元素的第一个索引[重复]

swift 数组中元素的第一个索引

双指针应用--快慢指针