如题·~~~

解决方案 »

  1.   


    $str = 'ABC';
    $res = arrange(str_split($str));
    print_r($res);
    function arrange($arr = array(), $res = '')
    {
    if(empty($arr))
    {
    $array[] = $res;
    }
    else
    {
    foreach($arr AS $k => $v)
    {
    unset($arr[$k]);
    foreach(arrange($arr, $res . $v) AS $t)
    {
    $array[] = $t;
    }
    $arr[$k] = $v;
    }
    }
    return $array;
    }
      

  2.   

    这样改,是不是很容易看明白。思路就是遍历挑选一个出来。接着去掉选中的哪个,遍历挑选下一个,组成一个字符串$str = 'ABC';
    /*
    $res = arrange(str_split($str));
    */
    arrange(str_split($str));
    print_r($res);
    function arrange($arr = array(), $res = '')
    {
    if(empty($arr))
    {
    /*
    $array[] = $res;
    */
    $GLOBALS['res'][] = $res;
    }
    else
    {
    foreach($arr AS $k => $v)
    {
    unset($arr[$k]);
    /*
    foreach(arrange($arr, $res . $v) AS $t)
    {
    $array[] = $t;
    }
    */
    arrange($arr, $res . $v);
    $arr[$k] = $v;
    }
    }
    return $array;
    }
      

  3.   

    return    $array;这个就没用了,,,,呵呵,忘记注释,不好意思