array_slice分析array_splice功能的PHP
本文主要介绍了array_slice和array_splice功能的PHP。的array_slice和array_splice函数是一段一段的,是用来删除数组,并array_splice具有新片代替原片位置的函数。类似于Javascript的array.prototype.splice和array.prototype.slice方法。
array_slice
array_slice数组(数组,int $偏移{ int,$长度=空{ bool =假
返回指定下标的偏移和长度的数组中的子段。
参数描述
第一个参数的数组的长度是num_in。
偏移
如果偏移为正,小于长度,返回的数组中从偏移;如果偏移大于长度,不操作,直接返回。如果偏负,偏移= num_in +偏移,如果num_in +偏移量= = 0,偏移量设置为0。
长度
如果长度小于0,则长度将转向num_in偏移+长度;否则,如果偏移+长> array_count,长度= num_in偏移。如果长度加工后小于0,它直接返回。
preserve_keys
默认为false,默认值不保留数字键的原始顺序,而true将保留原始数字键顺序的数组。
用一个例子
< PHP
$输入=数组()
输出= array_slice美元(美元输入,2); / / C返回
输出= array_slice美元(美元输入,2, 1); / /返回D
输出= array_slice美元(美元输入,0, 3); / /返回
print_r(array_slice(美元输入,2,1)); / /阵列(0 = C,会= 1);
print_r(array_slice(美元输入,2,1,true); / /)阵列(2 = C,会= 1);
运行步骤
加工参数:偏移量、长度
将指针移动到偏移点。
从偏移量、复制长度元素返回数组
运行流程图如下
array_splice
阵列array_splice(数组输入,int $偏移,int长度= 0美元{ $替换=阵列(混合))
从偏移量中删除开始长度元素的输入,如果有替换参数,则用替换数组替换已删除的元素。
参数描述
偏移量和长度在array_splice函数的参数是在array_slice函数使用相同的。
置换
如果设置了这个参数,函数将用替换数组替换。
如果偏移量和长度指定不需要删除任何元素,则替换将插入到偏移位置。
如果替换只有一个元素,则可以不用数组()包装它。
使用的例子
< PHP
输入=数组(红色
array_splice(美元输入,2);
输入数组(红色
输入=数组(红色
array_splice(美元输入,1,1);
输入数组(红色
输入=数组(红色
array_splice(美元输入,1,计数($输入),橙色);
输入数组(红色
输入=数组(红色
array_splice(美元输入,1, 1,阵列(黑
输入数组(红色
蓝色
输入=数组(红色
array_splice(美元输入,3, 0,紫);
输入数组(红色
蓝色
源代码解释
在array_splice,有这样一段代码:
如果不进行删除,不要创建删除的元素数组。
*仅用于去除和/或替换;例如:元素。
如果(return_value_used){ / /如果返回值是有用的创建函数返回一个数组,否则不要创建数组
int大小=长度;
夹紧偏移量。
如果(偏移> num_in){
num_in偏移;
} else if(偏移量<0(偏移=(num_in +偏移))<0){
偏移量=0;
}
..长度为
如果(长度<0){
尺寸= num_in偏移+长度;
}如果((((( unsigned long)偏移量+(unsigned long)长度)>(无符号)num_in){
尺寸= num_in偏移;
}
初始化返回值
array_init_size(return_value,大小> 0大小:0);
rem_hash = z_arrval_p(return_value);
}
的array_splice函数返回被删除的片。本代码意味着如果array_splice需要返回一个值,然后返回的数组被创建,否则将造成浪费的空间。这也是一个编程技巧,收益只有当它是必要的。例如,使用$结果= array_splice(…)在功能,然后return_value_used是真实的。
总结
在本文的结尾,在通常的程序设计中,应该像两个函数的方式时将最特别的处理掉,然后继续这样做,多余的判断;当需要保存新变量来申请一个新的空间时,还是会造成浪费。
谢谢你的阅读。我希望你能帮助你,谢谢你对这个站的支持。