PHP中unset,array_splice删除数组中元素的区别
如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排:
<?php $arr = array('a','b','c','d'); unset($arr[1]); 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); ?>
结果是:
Array ( [0] => a [1] => c [2] => d )
删除数组中特定元素
<?php $arr2 = array(1,3, 5,7,8); foreach ($arr2 as $key=>$value) { if ($value === 3) unset($arr2[$key]); } var_dump($arr2); ?>
补充删除空数组
实例:
<?php $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>""); array_filter($array); echo "<pre>"; print_r($array); ?>
结果:
Array (
[a] => abc
[b] => bcd
[c] => cde
[d] => def
)
总结
array_splice()函数删除的话,数组的索引值也变化了。
unset()函数删除的话,数组的索引值没有变化。
相关推荐
-
ThinkPHP写数组插入与获取最新插入数据ID实例
本文实例讲述了thinkphp写数组插入与获取最新插入数据ID的实现方法.分享给大家供大家参考.具体方法分析如下: 该实例讲述了thinkphp怎么自己写数组插入,此处是以注册用户为例. 具体实现代码如下: 复制代码 代码如下: public function insert2(){ header("Content-Type:text/html; charset=utf-8"); $Dao = M("User"); // 构建写入的数据数组 $data[&quo
-
php数组函数序列之array_values() 获取数组元素值的函数与方法
array_values() 定义和用法 array_keys() 函数返回包含数组中所有键名的一个新数组. 如果提供了第二个参数,则只返回键值为该值的键名. 如果 strict 参数指定为 true,则 PHP 会使用全等比较 (===) 来严格检查键值的数据类型. 语法 array_keys(array,value) 参数 描述 array 必需.规定输入的数组. value 可选.指定值的索引(键). strict 可选.与 value 参数一起使用.可能的值: true - 根据类型返回
-
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
array_unshift()定义和用法 array_unshift() 函数在数组开头插入一个或多个元素. 被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样. 该函数会返回数组中元素的个数. 语法 array_unshift(array,value1,value2,value3...)参数 描述 array 必需.规定输入的数组. value1 必需.规定插入的值. value2 可选.规定插入的值. value3 可选.规定插入的值. 提示和注释 注释:所有的数值键名
-
php实现插入数组但不影响原有顺序的方法
本文实例讲述了php实现插入数组但不影响原有顺序的方法.分享给大家供大家参考.具体实现方法如下: function array_intsort($array,$num) { $array_right = $array_left = array(); $length = count($array); if ($num < $array[0]) { array_unshift($array,$num); return $array; } else { for($i=0; $i < $length;
-
php数组函数序列之array_splice() - 在数组任意位置插入元素
array_splice定义和用法 array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替. 如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代. 最后生成的数组将会返回. 语法 array_splice(array,offset,length,array)参数 描述 array 必需.规定数组. offset 必需.数值.如果 offset 为正,则从输入数组中该值指定的偏移量开始移除.如果
-
php数组函数序列之array_sum() - 计算数组元素值之和
array_sum()定义和用法 array_sum() 函数返回数组中所有值的总和. 如果所有值都是整数,则返回一个整数值.如果其中有一个或多个值是浮点数,则返回浮点数. PHP 4.2.1 之前的版本修改了传入的数组本身,将其中的字符串值转换成数值(大多数情况下都转换成了零,根据具体制而定). 语法 array_sum(array) 参数 描述 array 必需.规定输入的数组. 例子1 复制代码 代码如下: <?php $a=array(0=>"5",1=>&q
-
php判断数组元素中是否存在某个字符串的方法
方法一:采用in_array(value,array,type) type 可选.如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同. 复制代码 代码如下: $arr = array('可以','如何','方法','知道','沒有','不要');//in_array(value,array,type)$isin = in_array("如何2",$arr);if($isin){ echo "in====".$isin;}else{ ec
-
php数组添加元素方法小结
本文较为详细的总结了php数组添加元素方法.分享给大家供大家参考.具体分析如下: 如果我们是一维数组增加数组元素我们可以使用ArrayListay_push,当然除这种方法之外我们还有更直接的办法,这里就来给大家整理一下. 一维数组增加元素 $ArrayList = ArrayListay(); Array_push($ArrayList, el1, el2 ... eln); 但其实有一种更直接方便的做法,代码如下: $ArrayList = ArrayListay(); $ArrayList
-
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
array_push() 定义和用法 array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度. 该函数等于多次调用 $array[] = $value. 语法 array_push(array,value1,value2...)参数 描述 array 必需.规定一个数组. value1 必需.规定要添加的值. value2 可选.规定要添加的值. 提示和注释 注释:即使数组中有字符串键名,您添加的元素也始终是数字键.(参见例子 2) 注释:如果用 a
-
php插入排序法实现数组排序实例
本文实例讲述了php插入排序法实现数组排序的方法.分享给大家供大家参考.具体分析如下: 插入排序法的基本思路:同样以案例来说明,还是以$arr = array(2,6,3,9),由大到小排序. 实现原理:假设(并不实际创建)有一个有序数组$arr = array(2),用$arr[1]=6来与它进行比较,如果6>2,由把$arr[0]后移到$arr[1]位置,而6插入到$arr[0]位置.接着,$arr[2]=3与$arr[1]=2比较,3>2,则$arr[1]=2继续后移到$arr[2]位置
-
PHP实现向关联数组指定的Key之前插入元素的方法
本文实例讲述了PHP实现向关联数组指定的Key之前插入元素的方法.分享给大家供大家参考,具体如下: PHP 关联数组可以通过三种方式插入新元素: 1. $array[$insert_key] = $insert_value; 2. $array = array_merge($array, $insert_array); 3. $array = $array+$insert_array; 但是如果要在指定的键之前插入元素呢?下面的代码将 $data 插入关联数组 $array 的键名为 $key
-
逆序二维数组插入一元素的php代码
复制代码 代码如下: <?php /** * 逆序二维数组插入一元素 * * @author WadeYu * @date 2012-05-30 */ $aSorted = array( array(1, 100), array(2, 90), array(3, 80), array(4, 70), array(5, 60), array(6, 50), array(7, 40), array(8, 40), array(9, 40), array(10, 20), ); $aInsert =
随机推荐
- 基于Require.js使用方法(总结)
- 详解JSONObject和JSONArray区别及基本用法
- 当使用ckeditor控件时,需要校验输入内容是否为空的一种解决办法(转帖)
- 详解Linux中的wget命令
- java多线程编程之使用runnable接口创建线程
- ASP.NET笔记之 Repeater的使用
- PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
- C++破坏MBR的代码
- php命令行(cli)模式下报require 加载路径错误的解决方法
- Android 实现自动打电话与发短信的实例
- js 异步处理进度条
- Sample script that displays all of the users in a given SQL Server DB
- ISAPI_Rewrite 3.1 教程中文版
- 华众hzhost主控端安装图文教程
- asp.net 程序优化精选第1/2页
- elasticsearch启动警告无法锁定JVM内存
- layer弹出层全屏及关闭方法
- iOS实现通过按钮添加和删除控件的方法
- 详解Vue.js自定义tipOnce指令用法实例
- BP神经网络原理及Python实现代码