Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4249284
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: PHP

2018-04-04 09:29:10

本例为2X2,3X3,4X4之类的排列

点击(此处)折叠或打开

  1. <?php

  2.   define( "N" ,3);
  3.   $arr = array( 'a','b','c','d','e','f','g','h','i','j');

  4.   $out = g( N );
  5.   var_dump( $out );

  6.   function g( $n = 4, $o = '' ){
  7.           global $arr;

  8.           $temp = array();
  9.           for( $i=0; $i<$n; $i++ ){

  10.                   if( $i == 0 ) {
  11.                           $temp = j($o);
  12.                           continue;
  13.                   }

  14.                   $temp2 = array();
  15.                   foreach( $temp as $k=>$v ){
  16.                           //由于j返回的是一个数组,如果直接用$temp3[]=j($v),则$temp3成了二维数组
  17.                           $temp2 = array_merge( $temp2, j( $v ));
  18.                   }
  19.                   $temp = $temp2;
  20.           }

  21.           return $temp;
  22.   }

  23.   function a( $o ){
  24.           global $arr;

  25.           $arr_temp = array();
  26.           for( $j=0; $j<N; $j++){
  27.                   $arr_temp[ $j ] = $o.$arr[ $j ];
  28.           }

  29.           return $arr_temp;
  30.   }

  31.   function j( $o ){
  32.           global $arr;

  33.           $arr_temp = array();
  34.           for( $j=0; $j<N; $j++){
  35.                   if( strpos( $o, $arr[ $j ] ) === false ) $arr_temp[ $j ] = $o.$arr[ $j ];
  36.           }

  37.           return $arr_temp;
  38.   }



  39.   ?>

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