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新手上路(十二)
Oct 09 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
PHP cdata 处理(详细介绍)
Jul 05 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
Yii配置与使用memcached缓存的方法
Jul 13 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 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和ACCESS写聊天室(六)
2006/10/09 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
List Installed Software Features
2007/06/11 Javascript
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
Python内置模块logging用法实例分析
2018/02/12 Python
python配置grpc环境
2019/01/01 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
python实现图片中文字分割效果
2019/07/22 Python
Python Pandas 箱线图的实现
2019/07/23 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
python 星号(*)的多种用途
2020/09/21 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
采购内勤岗位职责
2013/12/10 职场文书
安全生产投入制度
2014/01/29 职场文书
幼师求职信
2014/06/23 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
公司规章制度范本
2015/08/03 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript