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
)
代码如下:
<?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把索引数组的第一个元素移除后索引不重置的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):数组类:第27题:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度