如何从PHP数组中删除指定元素序列并获取剩余数组?
解决方案
- 方法1:使用
array_splice(最适配你的需求场景)array_splice会直接修改传入的原数组,返回值为被移除的元素片段,操作完成后原数组就是删除指定元素后的剩余数组。你需要删除索引2、3、4(共3个连续元素),代码示例如下:
$tobeputinfiletemp = explode ("&", $entityBody); // 从索引2开始,移除3个元素(对应索引2、3、4) array_splice($tobeputinfiletemp, 2, 3); // 此时$tobeputinfiletemp就是你需要的剩余数组 print_r($tobeputinfiletemp);
如果不想修改原数组,可以先复制一份再执行移除操作:
$tobeputinfilefinal = $tobeputinfiletemp; array_splice($tobeputinfilefinal, 2, 3); print_r($tobeputinfilefinal);
- 方法2:拼接两次
array_slice的结果
如果你希望完全不触碰原数组,也可以分别取出删除区间前后的数组片段,拼接得到剩余数组:
$tobeputinfiletemp = explode ("&", $entityBody); // 取前2个元素(索引0、1) + 取从索引5开始到末尾的所有元素 $tobeputinfilefinal = array_merge( array_slice($tobeputinfiletemp, 0, 2), array_slice($tobeputinfiletemp, 5) ); print_r($tobeputinfilefinal);
额外提示:你之前的代码中
array_slice($tobeputinfiletemp , 2, 4)是取出从索引2开始的4个元素,对应索引2、3、4、5,和你要删除的2、3、4范围不一致,使用时需要注意长度参数的取值。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

