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的session功能评述(三)
Oct 09 PHP
如何写php程序?
Dec 08 PHP
处理单名多值表单的详解
Jun 08 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
Laravel框架文件上传功能实现方法示例
Apr 16 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
一文搞懂PHP中的抽象类和接口
May 25 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 MYSQL 数据备份类
2009/06/19 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
Js动态创建div
2008/09/25 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
jupyter 导入csv文件方式
2020/04/21 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
幼儿园中秋节活动方案2013
2014/01/29 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
法制宣传日活动总结
2014/04/29 职场文书
信息合作协议书
2014/10/09 职场文书
作文评语集锦
2014/12/25 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
Elasticsearch 配置详解
2022/04/19 Java/Android
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis