php求数组全排列,元素所有组合的方法总结


Posted in PHP onMarch 14, 2017

本文实例讲述了php求数组全排列,元素所有组合的方法总结。

分享给大家供大家参考,具体如下:

<?php
$source = array('pll','我','爱','你','嘿');
sort($source); //保证初始数组是有序的
$last = count($source) - 1; //$source尾部元素下标
$x = $last;
$count = 1; //组合个数统计
echo implode(',', $source), "<br>"; //输出第一种组合
while (true) {
 $y = $x--; //相邻的两个元素
 if ($source[$x] < $source[$y]) { //如果前一个元素的值小于后一个元素的值
  $z = $last;
  while ($source[$x] > $source[$z]) { //从尾部开始,找到第一个大于 $x 元素的值
   $z--;
  }
  /* 交换 $x 和 $z 元素的值 */
  list($source[$x], $source[$z]) = array($source[$z], $source[$x]);
  /* 将 $y 之后的元素全部逆向排列 */
  for ($i = $last; $i > $y; $i--, $y++) {
   list($source[$i], $source[$y]) = array($source[$y], $source[$i]);
  }
  echo implode(',', $source), "<br>"; //输出组合
  $x = $last;
  $count++;
 }
 if ($x == 0) { //全部组合完毕
  break;
 }
}
echo 'Total: ', $count, "\n";
?>

以上这篇php求数组全排列,元素所有组合的方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
分享php分页的功能模块
Jun 16 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP的PDO错误与错误处理
Jan 27 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 #PHP
Linux下快速搭建php开发环境
Mar 13 #PHP
php创建图像具体步骤
Mar 13 #PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 #PHP
PHP计算近1年的所有月份
Mar 13 #PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 #PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 #PHP
You might like
PHP Token(令牌)设计
2008/03/15 PHP
程序员编程十条戒律
2009/07/09 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
php获取图片信息的方法详解
2015/12/10 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
json简单介绍
2008/06/10 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
javascript的push使用指南
2014/12/05 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
Ajax基础知识详解
2017/02/17 Javascript
js模块加载方式浅析
2017/08/12 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
python3实现SMTP发送邮件详细教程
2018/06/19 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
宿舍违规检讨书
2014/01/12 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
班级年度安全计划书
2014/05/01 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
群众路线对照检查材料
2014/09/22 职场文书
超市工作总结范文2014
2014/12/19 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
工作失误检讨书
2015/01/26 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python