php js => splice 数组 插入 功能

时间:2023-01-30 03:02:38

php    array_splice 手册详解

array_splice   — 把数组中的一部分去掉并用其它值取代

参数

input
  输入的数组。
offset
  如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。

length

  如果省略 length ,则移除数组中从 offset 到结尾的所有部分。如果指定了 length 并且为正值,则移除这么多单元。如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。小窍门:当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length 。

replacement
  如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。

  如果 offset 和 length 的组合结果是不会移除任何值,则 replacement 数组中的单元将被插入到 offset 指定的位置。 注意替换数组中的键名不保留。

  如果用来替换 replacement 只有一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组、一个对象或者 NULL 。

EG:

  

$arr  = array( "red" ,  "green" ,  "blue" ,  "yellow" );
//将单元向数组第二位插入 $white
array_splice($arr, , , $white );
结果: $white = ' white '
array( "red" , "green" , "white", "blue" , "yellow" );
$white = array()
array( "red" , "green" , array() , "blue" , "yellow" );

如果是 将一个已经存在  排好序的数组 将其中一个单元移动位置 可以如下

$arr = [ 1, 2, 3, 4, 5, 6, 7 ];
//现在将 4 移动到 1 的位置 $tmp = $arr[3];
//从第4个开始 删除一个单元
array_splice($arr, 4, 1 ); //向数组中的第一位存入一个单元
array_splice($arr, 1, 0, $tmp)

 js  splice()算是最强大的了,它可以用于插入、删除或替换数组的元素。

1.删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数) 
 2.插入-向数组指定位置插入任意项元素。三个参数,第一个参数(其实位置),第二个参数(0),第三个参数(插入的项) 
 3.替换-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项)

var lang = ["php","java","javascript"];
//删除
var removed = lang.splice(1,1);
alert(lang); //php,javascript
alert(removed); //java ,返回删除的项
//插入
var insert = lang.splice(0,0,"asp"); //从第0个位置开始插入
alert(insert); //返回空数组
alert(lang); //asp,php,javascript
//替换
var replace = lang.splice(1,1,"c#","ruby"); //删除一项,插入两项
alert(lang); //asp,c#,ruby
alert(replace); //php,返回删除的项

资料参考 :http://www.jb51.net/article/33306.htm