美文网首页
PHP中 array_slice 和 array_splice

PHP中 array_slice 和 array_splice

作者: 萌二宝 | 来源:发表于2016-11-08 20:32 被阅读237次

    slice 和 splice 的英文意思

    slice 切成片; 切下; 划分
    splice 剪接

    所以在PHP语法中, 就有以下的意思

    array_slice 返回数组中被选定的部分.
    array_splice 删除并替换数组中指定的元素.

    上代码 ( // 后面为输出的内容)

    array_slice(array(必须),start(必须),length(可选),preserve(可选))

    在array1这个数组的下标为1的元素开始, 截取2个元素的长度(可选参数, 如果不选择长度, 则是直至最后一个 元素的唱的).

    $array1 = array('Touch me', 'Make me come alive', 'turn me on');
    
    print_r(array_slice($array1, 1, 2)); 
    // 输出为: Array ( [0] => Make me come alive [1] => turn me on )
    

    preserve 为可选。规定函数是保留键名还是重置键名。可能的值:
    true - 保留键名
    false - 默认。重置键名

    $array2 = array('red', 'green', 'blue', 'yellow', 'brown');
    
    print_r(array_slice($array2, 1));  
    // Array ( [0] => green [1] => blue [2] => yellow [3] => brown ) 
    print_r(array_slice($array2, 1, 2, true)); 
    //Array ( [1] => green [2] => blue )
    print_r(array_slice($array2, 1, 2));
     //Array ( [0] => green [1] => blue )
    

    array_splice(array(必),deleteFromIndex(必),length(可选),insertArray(可选))

    $a1 = array('a' => 'red','b' =>'green', 'c'=>'blue','d'=>'yellow');
    $a2 = array('a' => 'purple', 'b' => 'orange');
    print_r(array_splice($a1, 0, 2, $a2));
    // Array ( [a] => red [b] => green )
    print_r($a1); 
    // 改变了原数组$a1:Array ( [0] => purple [1] => orange [c] => blue [d] => yellow )
    
    $a1=array("0"=>"red","1"=>"green");
    $a2=array("0"=>"purple","1"=>"orange");
    array_splice($a1,1,0,$a2);
    print_r($a1);
     //Array ( [0] => red [1] => purple [2] => orange [3] => green )
    

    在这里需要注意的是这两个函数的必选参数 第二个(start 和 deleteFromIndex ) 是可以为负数的, 负数情况下就是从最后面开始数倒数第 start 或 deleteFromIndex 个的位开始 向后数 length 个

    下面代码的意思为在$a这个数组的倒数第2个元素开始向后 slice (截取) 1个元素做为返回值返回, 所以输出为yellow.

    $a=array("red","green","blue","yellow","brown");
    print_r(array_slice($a,-2,1)); 
    //Array ( [0] => yellow )  
    

    相关文章

      网友评论

          本文标题:PHP中 array_slice 和 array_splice

          本文链接:https://www.haomeiwen.com/subject/zzxzuttx.html