注意(其中#和$数量不定,也就是说层数不定,用固定的循环肯定是做不到的)原始字符串如下:
a$b$c#A$B$C#1$2$3
要求组合出来N个字符串 ,用逗号连接
aA1,aA2,aA3,aB1,aB2,aB3,aC1,aC2,aC3,bA1,bA2,bA3,bB1,bB2,bB3,bC1,以此类推。再提供几个字符串:
a$b$c#A$B$C#1$2$3#y$u$u
a$b$c#A$B$C$D$E$F#1$2$3#y$u$u#0$9$8$7$6$5
字符串不固定,没有什么规律的。

解决方案 »

  1.   

    $s = 'a$b$c#A$B$C#1$2$3';foreach(explode('#', $s) as $v) {
      $t[] = explode('$', $v);
    }echo join(',', foo($t));function foo($ar) {
      $t = array_shift($ar);
      if(count($ar) > 1) {
        $r = foo($ar);
      }else $r = current($ar);
      foreach($t as $t1) {
        foreach($r as $r1) {
          $res[] = $t1.$r1;
        }
      }
      return $res;
    }aA1,aA2,aA3,aB1,aB2,aB3,aC1,aC2,aC3,bA1,bA2,bA3,bB1,bB2,bB3,bC1,bC2,bC3,cA1,cA2,cA3,cB1,cB2,cB3,cC1,cC2,cC3
      

  2.   

    如果遇到大量字符串的时候,直接报超出内存限制了。
    报错信息: Fatal error: Allowed memory size of 268435456 bytes exhausted 有什么可解决的办法。