PHP实现向关联数组指定的Key之前插入元素的方法

本文实例讲述了PHP实现向关联数组指定的Key之前插入元素的方法。分享给大家供大家参考,具体如下:

PHP 关联数组可以通过三种方式插入新元素:

1. $array[$insert_key] = $insert_value;
2. $array = array_merge($array, $insert_array);
3. $array = $array+$insert_array;

但是如果要在指定的键之前插入元素呢?下面的代码将 $data 插入关联数组 $array 的键名为 $key 的 Key 之前:

function wpjam_array_push($array, $data=null, $key=false){
  $data  = (array)$data;
  $offset  = ($key===false)?false:array_search($key, array_keys($array));
  $offset  = ($offset)?$offset:false;
  if($offset){
    return array_merge(
      array_slice($array, 0, $offset),
      $data,
      array_slice($array, $offset)
    );
  }else{  // 没指定 $key 或者找不到,就直接加到末尾
    return array_merge($array, $data);
  }
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • php实现插入数组但不影响原有顺序的方法

    本文实例讲述了php实现插入数组但不影响原有顺序的方法.分享给大家供大家参考.具体实现方法如下: function array_intsort($array,$num) { $array_right = $array_left = array(); $length = count($array); if ($num < $array[0]) { array_unshift($array,$num); return $array; } else { for($i=0; $i < $length;

  • PHP中unset,array_splice删除数组中元素的区别

    如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排: <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> 结果是: Array ( [0] => a [2] => c [3] => d )   那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice(): <?php $arr = array('a','b','c','d

  • php数组函数序列之array_values() 获取数组元素值的函数与方法

    array_values() 定义和用法 array_keys() 函数返回包含数组中所有键名的一个新数组. 如果提供了第二个参数,则只返回键值为该值的键名. 如果 strict 参数指定为 true,则 PHP 会使用全等比较 (===) 来严格检查键值的数据类型. 语法 array_keys(array,value) 参数 描述 array 必需.规定输入的数组. value 可选.指定值的索引(键). strict 可选.与 value 参数一起使用.可能的值: true - 根据类型返回

  • php数组添加元素方法小结

    本文较为详细的总结了php数组添加元素方法.分享给大家供大家参考.具体分析如下: 如果我们是一维数组增加数组元素我们可以使用ArrayListay_push,当然除这种方法之外我们还有更直接的办法,这里就来给大家整理一下. 一维数组增加元素 $ArrayList = ArrayListay(); Array_push($ArrayList, el1, el2 ... eln); 但其实有一种更直接方便的做法,代码如下: $ArrayList = ArrayListay(); $ArrayList

  • 逆序二维数组插入一元素的php代码

    复制代码 代码如下: <?php /** * 逆序二维数组插入一元素 * * @author WadeYu * @date 2012-05-30 */ $aSorted = array( array(1, 100), array(2, 90), array(3, 80), array(4, 70), array(5, 60), array(6, 50), array(7, 40), array(8, 40), array(9, 40), array(10, 20), ); $aInsert =

  • php数组函数序列之array_unshift() 在数组开头插入一个或多个元素

    array_unshift()定义和用法 array_unshift() 函数在数组开头插入一个或多个元素. 被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样. 该函数会返回数组中元素的个数. 语法 array_unshift(array,value1,value2,value3...)参数 描述 array 必需.规定输入的数组. value1 必需.规定插入的值. value2 可选.规定插入的值. value3 可选.规定插入的值. 提示和注释 注释:所有的数值键名

  • php判断数组元素中是否存在某个字符串的方法

    方法一:采用in_array(value,array,type) type 可选.如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同. 复制代码 代码如下: $arr = array('可以','如何','方法','知道','沒有','不要');//in_array(value,array,type)$isin = in_array("如何2",$arr);if($isin){    echo "in====".$isin;}else{    ec

  • php插入排序法实现数组排序实例

    本文实例讲述了php插入排序法实现数组排序的方法.分享给大家供大家参考.具体分析如下: 插入排序法的基本思路:同样以案例来说明,还是以$arr = array(2,6,3,9),由大到小排序. 实现原理:假设(并不实际创建)有一个有序数组$arr = array(2),用$arr[1]=6来与它进行比较,如果6>2,由把$arr[0]后移到$arr[1]位置,而6插入到$arr[0]位置.接着,$arr[2]=3与$arr[1]=2比较,3>2,则$arr[1]=2继续后移到$arr[2]位置

  • php数组函数序列之array_splice() - 在数组任意位置插入元素

    array_splice定义和用法 array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替. 如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代. 最后生成的数组将会返回. 语法 array_splice(array,offset,length,array)参数 描述 array 必需.规定数组. offset 必需.数值.如果 offset 为正,则从输入数组中该值指定的偏移量开始移除.如果

  • ThinkPHP写数组插入与获取最新插入数据ID实例

    本文实例讲述了thinkphp写数组插入与获取最新插入数据ID的实现方法.分享给大家供大家参考.具体方法分析如下: 该实例讲述了thinkphp怎么自己写数组插入,此处是以注册用户为例. 具体实现代码如下: 复制代码 代码如下: public function insert2(){  header("Content-Type:text/html; charset=utf-8");  $Dao = M("User"); // 构建写入的数据数组  $data[&quo

  • php数组函数序列之array_sum() - 计算数组元素值之和

    array_sum()定义和用法 array_sum() 函数返回数组中所有值的总和. 如果所有值都是整数,则返回一个整数值.如果其中有一个或多个值是浮点数,则返回浮点数. PHP 4.2.1 之前的版本修改了传入的数组本身,将其中的字符串值转换成数值(大多数情况下都转换成了零,根据具体制而定). 语法 array_sum(array) 参数 描述 array 必需.规定输入的数组. 例子1 复制代码 代码如下: <?php $a=array(0=>"5",1=>&q

  • php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。

    array_push() 定义和用法 array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度. 该函数等于多次调用 $array[] = $value. 语法 array_push(array,value1,value2...)参数 描述 array 必需.规定一个数组. value1 必需.规定要添加的值. value2 可选.规定要添加的值. 提示和注释 注释:即使数组中有字符串键名,您添加的元素也始终是数字键.(参见例子 2) 注释:如果用 a

随机推荐