首页 » Web前端 » phpslice技巧_array_slice和array_splice差异

phpslice技巧_array_slice和array_splice差异

访客 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )

array_slice() 返回值:默认将重置数组的键(false) 如果数组中有字符键,所返回的将保留键名(包含为其重修数字索引的数组键名)

phpslice技巧_array_slice和array_splice差异

true 则保留键名;

phpslice技巧_array_slice和array_splice差异
(图片来自网络侵删)

$lamp=array("Linux", "Apache", "MySQL", "PHP"); //声明一个索引数组$lamp包含4个元素//利用array_slice()从第二个开始取(0是第一个,1为第二个),取两个元素从数组$lamp中返回print_r(array_slice($lamp,1,2)); //输出:Array ( [0] => Apache [1] => MySQL )//第二个参数利用负数参数为-2,从后面第二个开始取,返回一个元素print_r(array_slice($lamp,-2,1)); //输出: Array ( [0] => MySQL )//末了一个参数设置为 true,保留原有的键值返回print_r(array_slice($lamp,1,2,true)); //输出:Array ( [1] => Apache [2] => MySQL )$lamp=array("a"=>"Linux","b"=>"Apache","c"=>"MySQL","d"=>"PHP"); //声明一个关联数组//如果数组有字符串键,默认所返回的数组将保留键名print_r(array_slice($lamp,1,2)); //输出:Array ( [b] => Apache [c] => MySQL )0 1 2 3 4-5 -4 -3 -2 -1

array_splice — 把数组中的一部分去掉并用其它值取代,原数组发生了变革(array &$input引用值)

array array_splice ( array &$input , int $offset [, int $length [, array $ replacement ]] )

array_splice() 把 input 数组中由 offset 和 length 指定的单元去掉,如果供应了 replacement 参数,

则用 replacement 数组中的单元取代。
返回一个包含有被移除单元的数组。
把稳 input 中的数字键名不被保留。

$replacement如果传入的是单个值,则不能添加键名(索引和关联),否则涌现Parse error: syntax error, unexpected T_DOUBLE_ARROW

如果传入的是数组,则可以添加键名

第三个参数$length为正值,则表示长度,$length为负值的话,则移除从offset到数组末端倒数length为止中间所有的元素。

第四个参数可以为字符串,也可以为数组来替代移除的值;

$input = array("Linux", "Apache", "MySQL", "PHP");array_splice($input, 2); //原数组中的第二个元素后到数组结尾都被删除print_r($input); //输出:Array ( [0] => Linux [1] => Apache )$input = array("Linux", "Apache", "MySQL", "PHP");array_splice($input, 1, -1); //从第二个开始移除直到数组末端倒数1个为止中间所有的元素print_r($input); //输出:Array ( [0] => Linux [1] => PHP )$input = array("Linux", "Apache", "MySQL", "PHP");array_splice($input, 1, count($input), "web"); //从第二个元素到数组结尾都被第4个参数替代print_r($input); //输出:Array ( [0] => Linux [1] => web )$input = array("Linux", "Apache", "MySQL", "PHP");array_splice($input, -1, 1, array("web", "www")); //末了一个元素被第4个参数数组替代print_r($input); //输出:Array ( [0] => Linux [1] => Apache [2] => MySQL [3] => web [4] => www )

array_splice() 等价表达式

array_push($input, $x, $y) array_splice($input, count($input), 0, array($x, $y))

array_pop($input) array_splice($input, -1)

array_shift($input) array_splice($input, 0, 1)

array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y))

$input[$x] = $y // 对付键名和偏移量等值的数组 array_splice($input, $x, 1, $y)

提示: 在获取到全部的数据情形下, array_slice() 和 array_splice() 都可用于分页

如何将值追加到数组某个元素的前面或后面?

<?php$arr = array(101, 102, 103, 104, 105, 106, 107);$pos = 0;$id1 = 103;$id2 = 105;///方法一echo reset($arr);$newarr = array();foreach ($arr as $key=>$value){if($value == $id2){unset($arr[$key]);}else{$newarr[] = $value;}if($value == $id1){$newarr[] = $id2;}}echo "新的数组是:";var_export($newarr);///方法二foreach ($arr as $key=>$value){if($value == $id1){$pos = $key;}if($value == $id2){unset($arr[$key]);}}echo "当前的位置:".$pos;$newarr = array_splice($arr, $pos+1, 0, $id2); //当前的数组元素的后面echo "新的数组是:";var_export($arr);?>

标签:

相关文章

探索IT行业,职业发展新天地

在信息化时代,IT行业以其迅猛的发展速度和巨大的市场潜力,成为了无数年轻人追逐梦想的热土。从软件开发到网络安全,从大数据分析到人工...

Web前端 2024-12-27 阅读0 评论0

探索xit润喉糖,守护嗓音健康的新选择

随着现代生活节奏的加快,人们对于嗓音健康的关注程度日益提高。在这个背景下,xit润喉糖凭借其独特的功效和品质,成为了守护嗓音健康的...

Web前端 2024-12-27 阅读0 评论0

备机借用协议,企业应急管理的保障伞

随着社会经济的快速发展,企业面临的竞争压力日益加剧。在激烈的市场竞争中,企业对信息技术的依赖程度越来越高。信息技术系统的稳定运行对...

Web前端 2024-12-27 阅读0 评论0