a页面获取b页面提交过来的四个值
$a=1;
$b=2;
$c=3;
$d=4;它们按1,2,3,4格式存入一个字段。比如$c不存在的话就存入1,2,4
$a,$b,$d不存在就存入2
类推有没有简单的方法吧这几个值按照固定格式存入一个字段。

解决方案 »

  1.   

    直接 a$b$c$d$ 不就行了?
      

  2.   

    $str="";
    if ($a)
      $str="1,";
    if ($b)
      $str="2,";
    if ($c)
      $str="3,";
    if ($d)
      $str="4";echo $str;
      

  3.   

    $string = '';
    string .= ($a!=NULL) ? $a : '';
    string .= ($b!=NULL) ? $b : '';
    string .= ($c!=NULL) ? $c : '';
    string .= ($d!=NULL) ? $d : '';// $string 就是你要的结果了// 如果传递过来的是数组存放的,或者传过来后用数组接收,那么代码将更为简洁:$string = '';
    foreach($res as $a => $b){// $res是你接收值的数组
       $string .= ($b!=NULL)?$b:'';
    }
    // 具体变化视乎你数组怎么安排,这只是个思路
      

  4.   

    五楼的兄弟应该实现了吧,少个'号嘛 加上不就得了
    string .= ($a!=NULL) ? $a.“’” : '';
    string .= ($b!=NULL) ? $b.“’” : '';
    string .= ($c!=NULL) ? $c.“’” : '';
    string .= ($d!=NULL) ? $d : '';
      

  5.   


    <?php
    function get_str(){
    $arr=func_get_args();
    $str="";
    for($i=0;$i<4;$i++){
       if(isset($arr[$i])&&!empty($arr[$i]))
          $str=(($str=='')?"$arr[$i]":"$str,$arr[$i]");
      }
    return $str;
    }$string=get_str($a,$b,$c,$d);
    ?>
      

  6.   

    5楼的没有实现哦。如果单是一个$c存在$str就等于3,不要“,”这个符号。9楼的方法可以。
      

  7.   

    一开始没有理解清楚。那就加个判断if(!empty($string))好了。不过这么一来也可以用implode这个函数实现了:function format_str(){
       $arr = func_get_args();
       $temp = array();
       foreach($arr as $a => $b){
          if($b != NULL) $temp[] = $b;
       }
       $string = implode(',',$temp);
       return $string;
    }$string = format_str($a, $b, $c, $d ……);
      

  8.   

    $str="$a $b $c $d";
    echo ereg_replace("[ ]+",',',trim($str));
      

  9.   

    先将变量用空格隔开,两边空格trim掉,中间的替换成逗号