最近遇到一个需求,把一个数组随机打乱顺序,我们可以用php的shuffle函数,但是这个函数会把数组的键清空建立新的键,那么我们若想保留键只需要利用shuffle函数再做一下处理就可以了。可以自定义一个函数。

<?php
function retain_key_shuffle(array &$arr){
if (!empty($arr)) {
$key = array_keys($arr);
shuffle($key);
foreach ($key as $value) {
$arr2[$value] = $arr[$value];
}
$arr = $arr2;
}
}
?>

通过调用上面的函数就可以获得保留键顺序打乱新的数组了。

<?php
$arr = array('a' => 'A', 'b' => 'B');
retain_key_shuffle($arr);
var_export($arr);
?>

输出随机打乱顺序后的数组。

最新文章

  1. c# 保存数据到txt (追加)
  2. (8) 深入理解Java Class文件格式(七)
  3. Bit-Map
  4. 【转】C#之继承
  5. iOS开发——新特性OC篇&amp;Objective新特性
  6. html元素li移动动态效果
  7. Codeforces 540D Bad Luck Island
  8. 04747_Java语言程序设计(一)_第8章_多线程
  9. Android设计中的.9.png与Android Studio中的设置
  10. asp.net webForm 前后台类关系
  11. android 通过wifi 热点实现手机摄像头数据共享(转)
  12. 深圳市共创力推出独家课程《AHB和OSG》高级实务培训课程!
  13. freemarker和thymeleaf的使用样例
  14. debian apache2 多端口对应多文件 虚拟端口配置
  15. MySQL 性能调优之SQL
  16. c# 类一般在哪里实例化,是在类内、方法内还是其他地方?
  17. Appium-desktop的下载&amp;安装
  18. delphi 域名转ip并判断ip是否可以联通
  19. Oracle 导出用户下的所有索引创建语句
  20. beef局域网内模拟攻击

热门文章

  1. python脚本生成exe可执行文件
  2. Linux -- objdump二进制文件比较
  3. Flipboard-BottomSheetlayout 源码分析
  4. memcache的最佳实践方案
  5. html5,音频代码
  6. JSON对象长度和遍历方法
  7. 捷波朗 jabra BT3030 蓝牙耳机
  8. C#抽象方法和虚拟方法理解
  9. 自发行python版本制作(一)
  10. DP专题训练之HDU 1864 最大报销额