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伪静态页面函数附使用方法
Jun 20 PHP
PHP源码之 ext/mysql扩展部分
Jul 17 PHP
GBK的页面输出JSON格式的php函数
Feb 16 PHP
php ob_flush,flush在ie中缓冲无效的解决方法
May 09 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
Zend的Registry机制的使用说明
May 02 PHP
php判断手机访问还是电脑访问示例分享
Jan 20 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
php cli配置文件问题分析
Oct 15 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
PHP的PDO大对象(LOBs)
Jan 27 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实现文件下载详解
2014/11/27 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
动态添加js事件实现代码
2009/03/12 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
python list使用示例 list中找连续的数字
2014/01/27 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
python 字典的打印实现
2019/09/26 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
大学生实习自我鉴定
2013/12/11 职场文书
实用的简历自我评价
2014/03/06 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
环保建议书200字
2014/05/14 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书