recherche
Maisonphp教程php手册php求数组全排列,元素所有组合的方法,php数组

php求数组全排列,元素所有组合的方法,php数组

本文实例讲述了php求数组全排列,元素所有组合的方法。分享给大家供大家参考,具体如下:

<&#63;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";
&#63;>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP+ajax技巧与应用小结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft