向数组中任意位置添加元素实现

array_slice(array,start,length,preserve) 函数在数组中根据条件取出一段值,并返回。

 public static function rand_array_push($array, $data = [], $key=false){
        //找到需要在哪个位置添加的索引号
        $offset  = ($key == false) ? false: (array_search($key, array_keys($array))+1);
        if($offset){
            return array_merge(
                array_slice($array, 0, $offset),
                $data,
                array_slice($array, $offset)
            );
        }else{
            // 没指定 $key 或者找不到,就直接加到末尾
            return array_merge($array, $data);
        }
    }

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

提示:如果函数没有移除任何元素(length=0),则将从 start 参数的位置插入被替换数组(参见例子 2)。
注释:不保留被替换数组中的键名。

<?php

$items= ['苹果','橘子','梨','菠萝','香蕉','火龙果'] ;
/*
$items 传入的数组
$index 要插入的位置
$value 要插入的数据
*/
function insertAt($items, $index, $value) {
    array_splice ( $items , $index ,  0 , $value);

    return $items;
}

$out = insertAt($items,2,'橙子');

var_dump($out);

/* return 
array (size=7)
  0 => string '苹果' (length=6)
  1 => string '橘子' (length=6)
  2 => string '橙子' (length=6)
  3 => string '梨' (length=3)
  4 => string '菠萝' (length=6)
  5 => string '香蕉' (length=6)
  6 => string '火龙果' (length=9)
 */
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、数组定义 array() 1、索引数组 在一个变量中,存储一个或多个值。数组中的每一个元素都有一个访问ID,根...
    竹与豆阅读 3,511评论 0 0
  • # 数组部分 # 1.## array_chunk($arr, $size [, $preserve_key = ...
    clothTiger阅读 4,941评论 0 1
  • 一、Array_key_exists();检查给定的键名或索引是否存在于数组中二、array_keys ()返回数...
    peng_js阅读 2,720评论 0 0
  • 创建数组 索引数组索引为整数,如果没有指定索引值则默认为零,依次递增。 关联数组数组的key为字符串。 多维数组 ...
    栾呱呱阅读 5,641评论 3 34
  • 另一个问题是可应用于各种各样的证据之中:这个证据是否与思考问题有关联呢?如果没有关联,它就不值得过多的去关注,无论...
    韫左寻阅读 2,586评论 0 1