Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1204547
  • 博文数量: 252
  • 博客积分: 5421
  • 博客等级: 大校
  • 技术积分: 2418
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-17 12:59
文章分类

全部博文(252)

文章存档

2017年(3)

2016年(18)

2015年(31)

2014年(18)

2013年(7)

2012年(8)

2011年(12)

2010年(30)

2009年(32)

2008年(57)

2007年(36)

分类: Python/Ruby

2012-03-19 02:06:41


  1. <?php
  2. function getSequenceAry($arr)
  3. {
  4.     if (count($arr) == 1) {
  5.         return array($arr);
  6.     }
  7.     $arrRet = array();
  8.     foreach ($arr as $k => $v) {
  9.         $arr2 = $arr;
  10.         unset($arr2[$k]);
  11.         $arrOrderList = getSequenceAry($arr2);
  12.         foreach ($arrOrderList as $order) {
  13.             array_unshift($order, $v);
  14.             $arrRet[] = $order;
  15.         }
  16.     }
  17.     return $arrRet;
  18. }

  19. function getSequenceStr($arr)
  20. {
  21.     if (count($arr) == 1) {
  22.         return $arr;
  23.     }
  24.     $arrRet = array();
  25.     foreach ($arr as $k => $v) {
  26.         $arr2 = $arr;
  27.         unset($arr2[$k]);
  28.         $arrOrderList = getSequenceStr($arr2);
  29.         foreach ($arrOrderList as $order) {
  30.             $arrRet[] = $v . $order;
  31.         }
  32.     }
  33.     return $arrRet;
  34. }


  35. print_r(getSequenceAry(array(1,2,3)));
  36. print_r(getSequenceStr(array(1,2,3)));
  37. ------------------ output ------------------
  38. Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
            )

        [1] => Array
            (
                [0] => 1
                [1] => 3
                [2] => 2
            )

        [2] => Array
            (
                [0] => 2
                [1] => 1
                [2] => 3
            )

        [3] => Array
            (
                [0] => 2
                [1] => 3
                [2] => 1
            )

        [4] => Array
            (
                [0] => 3
                [1] => 1
                [2] => 2
            )

        [5] => Array
            (
                [0] => 3
                [1] => 2
                [2] => 1
            )

    )
    Array
    (
        [0] => 123
        [1] => 132
        [2] => 213
        [3] => 231
        [4] => 312
        [5] => 321
    )


阅读(1252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~