• 技术文章 >后端开发 >php教程

    php把数组中的指定元素去掉并用其它值取代的函数array_splice()

    黄舟黄舟2017-11-09 09:05:44原创1050

    实例

    数组中移除元素,并用新元素取代它:

    <?php
    $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
    $a2=array("a"=>"purple","b"=>"orange");
    array_splice($a1,0,2,$a2);
    print_r($a1);
    ?>

    定义和用法

    array_splice() 函数从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组。

    提示:如果函数没有移除任何元素(length=0),则替代数组将从 start 参数的位置插入(参见实例 2)。

    注释:不保留替代数组中的键名。

    语法

    array_splice(array,start,length,array)
    参数描述
    array必需。规定数组。
    start必需。数值。规定删除元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。 -2 意味着从数组的倒数第二个元素开始。
    length可选。数值。规定被移除的元素个数,也是被返回数组的长度。 如果该值设置为正数,则移除该数量的元素。如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。
    array可选。规定带有要插入原始数组中元素的数组。如果只有一个元素,则可以设置为字符串,不需要设置为数组。

    技术细节

    返回值:返回包含被提取元素的数组。
    PHP 版本:4+

    更多实例

    实例 1

    与本页前面部分的实例相同,但是输出返回的数组:

    <?php
    $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
    $a2=array("a"=>"purple","b"=>"orange");
    print_r(array_splice($a1,0,2,$a2));
    ?>

    实例 2

    带有设置为 0 的 length 参数:

    <?php
    $a1=array("0"=>"red","1"=>"green");
    $a2=array("0"=>"purple","1"=>"orange");
    array_splice($a1,1,0,$a2);
    print_r($a1);
    ?>

    在array_splice中,有这么一段代码:

    /* Don't create the array of removed elements if it's not going
      * to be used; e.g. only removing and/or replacing elements */
     if (return_value_used) { // 如果有用到函数返回值则创建返回数组,否则不创建返回数组
       int size = length;
     
       /* Clamp the offset.. */
       if (offset > num_in) {
         offset = num_in;
       } else if (offset < 0 && (offset = (num_in + offset)) < 0) {
         offset = 0;
       }
     
       /* ..and the length */
       if (length < 0) {
         size = num_in - offset + length;
       } else if (((unsigned long) offset + (unsigned long) length) > (unsigned) num_in)     {
         size = num_in - offset;
       }
     
       /* Initialize return value */
       array_init_size(return_value, size > 0 ? size : 0);
       rem_hash = &Z_ARRVAL_P(return_value);
     }

    array_splice函数返回的是被删除的切片。这段代码的意思是,如果array_splice需要返回值,那么才创建返回数组,否则不创建,以免浪费空间。这也是一个编程小技巧,仅当需要的时候才返回。比如在函数中使用$result = array_splice(...),那么return_value_used就是true。

    以上就是php把数组中的指定元素去掉并用其它值取代的函数array_splice()的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 去掉 元素
    上一篇:MySQL 8.0版本新特性详细介绍 下一篇:php返回数组中所有值的和的函数array_sum()
    大前端线上培训班

    相关文章推荐

    • PHP数据库学习之怎样一次执行多条SQL命令?• PHP中获取SQL的查询结果的常用函数整理(实例详解)• PHP中怎样去连接MySQL数据库?• PHP中mysqli_select_db与mysqli_query函数的用法• 你必须了解PHP中什么是抽象类和抽象方法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网