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 daodb插入、更新与删除数据
Mar 19 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
php截取视频指定帧为图片
May 16 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
Sep 16 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 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实现ODBC数据分页显示一例
2006/10/09 PHP
PHP实现变色验证码实例
2014/01/06 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
Firefox div高度自适应
2009/04/28 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
vue实现通讯录功能
2018/07/14 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python对列表排序的方法实例分析
2015/05/16 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
对python中list的五种查找方法说明
2020/07/13 Python
python 模块导入问题汇总
2021/02/01 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
函数指针的定义是什么
2016/08/14 面试题
环境科学专业个人求职信
2013/09/26 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
软件项目开发计划书
2014/05/01 职场文书
工商干部先进事迹
2014/05/14 职场文书
欢迎家长标语
2014/10/08 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
浅谈MySQL中的六种日志
2022/03/23 MySQL
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers