本帖最后由 bonlog 于 2012-12-07 09:08:21 编辑

解决方案 »

  1.   

    如果是一个白丁就写代码,看你也写过php了
    就提示你
    1.用 str_getcsv() 函数,需要字符串输出就 join
    2.判断不是数字就strtotime()自己写才能有进步
      

  2.   

    function foo($s) {
      $dict = array_flip(explode(',', '/,monday,tuesday,wednesday,thursday,friday,saturday,sunday'));
      $dict['/'] = ',';
      return strtr(strtolower($s), $dict);
    }echo foo('Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Sunday');
    1,2,3,4,5,6,7
      

  3.   

    空格和'/'均作处理
    function foo($s) {
    $array=array('monday'=>1,
    'tuesday'=>2,
    'wednesday'=>3,
    'thursday'=>4,
    'friday'=>5,
    'saturday'=>6,
    'sunday'=>7,
    '/'=>',',' '=>',');
      return strtr(strtolower($s), $array);

    echo foo('Monday Tuesday Wednesday/Thursday/Friday/Saturday/Sunday');
      

  4.   


    function foo($s) {
        $array= array('monday'   => 1,
                     'tuesday'  => 2,
                     'wednesday'=> 3,
                     'thursday' => 4,
                     'friday'   => 5,
                     'saturday' => 6,
                     'sunday'   => 7,
                    );    $sa = preg_split('/\W/',strtolower($s));
        $arr = array();
        foreach ($sa as $v) {
            if(is_numeric($v)) {
                $t = array_values($array);
                $arr[] = $t[$v-1];
            }
            else if (isset($array[$v])) {
                $arr[] = $array[$v];
            }
            else {
                foreach ($array as $k1 => $v1 )  {
                    if ( substr($k1, 0, 4) == $v ) {
                        $arr[] = $v1; break;
                    }
                }
            }
        }
        return join(",", $arr);
    }
    // 以下这些echo格式测试通过。
    //echo foo('1 Tuesday Wednesday/Thursday/Friday/Saturday/Sunday');
    //echo foo("1,2,Tues sunday/thursday");
    //echo foo("2,Tues,  sunday/thursday");
    //echo foo("1,2,sunday/thursday");
    //echo foo("7,6,5,Friday");