/*
author: yangyu@sina.cn
description: 交换数组中两个元素的位置,元素包括key和value,具体用法见下面的例子
*/
$arr = array(11=>'a',22=>'b',33=>'c',44=>'d');
$res = array_exchange($arr, 11 ,33);

//example:
echo '<pre>';print_r ($res);echo '</pre>';

function array_exchange($arr,$arg1,$arg2){
   $r = range(0,count($arr)-1);
   $res = $res_bak = array_combine($r,array_keys($arr));
   $change = array($arg1,$arg2);
   list($res[array_search($change[0],$res_bak)],$res[array_search($change[1],$res_bak)]) = array($change[1],$change[0]);
   foreach ($res as $v){
  $array[$v] = $arr[$v];
   }
   return $array;
}

最新文章

  1. &lt;java基础学习&gt;02JAVA的基础组成
  2. Coder-Strike 2014 - Round 1 B. Network Configuration
  3. javascript对象(1)
  4. Entity Framework 学习第二天 续
  5. [改善Java代码]用枚举实现工厂方法模式更简洁
  6. R 语言画图的基本参数
  7. javascript的函数传参(没有引用传递只有值传递)
  8. Signing key has not been configured
  9. IOS开发几何类方法 CGGeometry.h文件
  10. IONIC之简易购物车
  11. [Big Data]从Hadoop到Spark的架构实践
  12. Linux centOS的vm虚拟机配置详细 中文版
  13. 反射:修改请求头HttpWebRequest/Webclient Header属性的date值-&quot;此标头必须使用适当的属性进行修改&quot;
  14. Linux下Redis服务器搭建
  15. Java EE之Hibernate异常总结org.hibernate.MappingException: Repeated column in mapping for entity:
  16. 团队项目(MVP------新能源无线充电管理网站)(个人任务3)
  17. banner轮播无缝滚动 jq代码
  18. 我们为什么要学习 Spring Boot
  19. ZK集群搭建和配置
  20. 微信小程序之可滚动视图 scroll-view 的使用注意

热门文章

  1. Activity间切换的动画应用
  2. Smarty自定义函数
  3. CentOS中文件夹基本操作命令
  4. ***参考Catch That Cow(BFS)
  5. 关于oracle数据库(3)
  6. sql语句判断两个时间段是否有交集
  7. IOS 导出ipa文件方法
  8. Eclipse/MyEclipse中常用快捷键总结
  9. [转]Publishing and Running ASP.NET Core Applications with IIS
  10. OpenCV成长之路:图像直方图的应用