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获取mysql数据库中的所有表名的代码
Apr 23 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
PHP header函数分析详解
Aug 06 PHP
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
php数组中包含中文的排序方法
Jun 03 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 PHP
YII框架模块化处理操作示例
Apr 26 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 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使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
python用700行代码实现http客户端
2021/01/14 Python
怎样客观的做好自我评价
2013/12/28 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
财产公证书样本
2014/04/04 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
学习方法演讲稿
2014/05/10 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
mysql中关键词exists的用法实例详解
2022/06/10 MySQL