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 相关文章推荐
PHP4实际应用经验篇(6)
Oct 09 PHP
PHP初学入门
Nov 19 PHP
PHP Session变量不能传送到下一页的解决方法
Nov 27 PHP
PHP5常用函数列表(分享)
Jun 07 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
Yii2框架中一些折磨人的坑
Dec 15 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制作静态网站的模板框架
2006/10/09 PHP
PHP初学者头疼问题总结
2006/10/09 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
详解PHP中的Traits
2015/07/29 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
js实现随机点名小功能
2017/08/17 Javascript
详解vue路由
2020/08/05 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
分享Python开发中要注意的十个小贴士
2016/08/30 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
学生励志演讲稿
2014/01/06 职场文书
草船借箭教学反思
2014/02/03 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
成龙洗发水广告词
2014/03/14 职场文书
保护动物的标语
2014/06/11 职场文书
公司周年庆活动方案
2014/08/25 职场文书
升学宴祝酒词
2015/08/11 职场文书
如何拟写通知正文?
2019/04/02 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python