看不懂你写是啥,呵呵,可以告诉你一个方法.
比如说      if ($i == 1)
        {
            $a1=$xi;
         }
        if ($i == 2)
        {
            $a2=$xi;
         }
        if ($i == 3)
        {
            $a3=$xi;
         }
        if ($i == 4)
        {
            $a4=$xi;
         }
          if ($i == 5)
        {
            $a5=$xi;
         }可以改成        if($i > 0)
        {
          ${a$i} = $xi;
        }

解决方案 »

  1.   

    也可以这样写吧if($i > 0)
            {
              $a$i = $xi;
            }
      

  2.   

    或者楼主可以弄个数组 if ($i == 1)
            {
                $a1=$xi;
             }
            if ($i == 2)
            {
                $a2=$xi;
             }
            if ($i == 3)
            {
                $a3=$xi;
             }
            if ($i == 4)
            {
                $a4=$xi;
             }
              if ($i == 5)
            {
                $a5=$xi;
             }改成$i=0;
    $a=array();
    while($tok)
        {
            $xi=$tok;
           $a[$i]=$xi
            $i++;
             $tok = strtok(" ");
        }
      

  3.   

    或者楼主可以弄个数组 if ($i == 1)
            {
                $a1=$xi;
             }
            if ($i == 2)
            {
                $a2=$xi;
             }
            if ($i == 3)
            {
                $a3=$xi;
             }
            if ($i == 4)
            {
                $a4=$xi;
             }
              if ($i == 5)
            {
                $a5=$xi;
             }改成$i=0;
    $a=array();
    while($tok)
        {
            $xi=$tok;
           $a[$i]=$xi
            $i++;
             $tok = strtok(" ");
        }
      

  4.   


        $query1="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '/home%'";
            $result1=mysql_query($query1);
            $row1=mysql_fetch_array($result1);
            $row1['sum_pw_shellbak'];
        $scale1=round( $row1['sum_pw_shellbak']/$msg1[used] * 100 , 2) . "%";谢谢了 不过 那查找数据库 应该怎么写循环呀?
    谢谢 各位了
      

  5.   

    关键我就是想知道下面显示信息的应该怎么循环呀?$query1="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '/home%'";
            $result1=mysql_query($query1);
            $row1=mysql_fetch_array($result1);
            $row1['sum_pw_shellbak'];
        $scale1=round( $row1['sum_pw_shellbak']/$msg1[used] * 100 , 2) . "%";    $query2="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '/disk2%'";
            $result2=mysql_query($query2);
            $row2=mysql_fetch_array($result2);
            $row2['sum_pw_shellbak'];
        $scale2=round( $row2['sum_pw_shellbak']/$msg2[used] * 100 , 2) . "%";
            
        $query3="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '/disk3%'";
            $result3=mysql_query($query3);
            $row3=mysql_fetch_array($result3);
            $row3['sum_pw_shellbak'];
        $scale3=round( $row3['sum_pw_shellbak']/$msg3[used] * 100 , 2) . "%";
            
        $query4="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '/disk4%'";
            $result4=mysql_query($query4);
            $row4=mysql_fetch_array($result4);
            $row4['sum_pw_shellbak'];
        $scale4=round( $row4['sum_pw_shellbak']/$msg4[used] * 100 , 2) . "%";
    $row1['sum_pw_shellbak'];$row2['sum_pw_shellbak'];$row3['sum_pw_shellbak'];·····
    这些应该怎么循环呀
      

  6.   


    $query1="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '/home%'";
    $result1=mysql_query($query1);
    $row1=mysql_fetch_array($result1);
    $row1['sum_pw_shellbak'];
    $scale1=round( $row1['sum_pw_shellbak']/$msg1[used] * 100 , 2) . "%";
    $n = 4;
    for($i=2;$i<= n; $i++)
    {
       $query="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '/disk$i%'";
       $result=mysql_query($query);
       $row=mysql_fetch_array($result);
       $msg = $row['sum_pw_shellbak'];
       ${scale$i}=round( $row['sum_pw_shellbak']/$msg[used] * 100 , 2) . "%";
       mysql_free_result($result);
    }
      

  7.   

    既然只是查找关键字不同,那就弄个数组把关键字存进去
    $query_keys = array("/home%","/disk2%",..........);
    然后foreach循环遍历一下就可以了呗$results = array();foreach($query_keys as $key => $value) {
      $query="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '".$value."'";
      $result=mysql_query($query);
      $row=mysql_fetch_array($result);
      $row['sum_pw_shellbak'];
      $results[$key]=round( $row['sum_pw_shellbak']/$msg[used] * 100 , 2) . "%";
    }
      

  8.   

    是应该改善一下你的代码了,一眼看上去很乱的。建议学习下jakey9826提供的方法。
      

  9.   

    小弟是菜菜 谢谢各位细心的解答 感动ing··· 
    可是当挂载的磁盘不一样
    $msg[used]也不一样呀 disk1是$msg1[used] disk2是$msg2[used] disk3是$msg3[used] ·····
    这个能有什么办法呀?  $disk1=$disk2=$disk3=$disk4="";
                    $disk1=exec("/bin/df -h /home/vpopmail/");
                    $msg1=getdiskspaces($disk1);
                    $disk2=exec("/bin/df -h /disk2/");
                    $msg2=getdiskspaces($disk2);
                    $disk3=exec("/bin/df -h /disk3/");
                    $msg3=getdiskspaces($disk3);
                    $disk4=exec("/bin/df -h /disk4/");
                    $msg4=getdiskspaces($disk4);
      

  10.   

    你用多维数组不就可以了$disk_array = array( array( 'query' = '.....', 'msg' = '...'),
                         array( 'query' = '.....', 'msg' = '...'),
                         ...
                       );$results = array(); foreach($disk_array as $key => $disk_info) { 
      $query="select sum(pw_shellbak) as sum_pw_shellbak from vpopmail where pw_dir like '".$disk_info['query']."'"; 
      $result=mysql_query($query); 
      $row=mysql_fetch_array($result); 
      $row['sum_pw_shellbak']; 
      $results[$key]=round( $row['sum_pw_shellbak']/$disk_info['msg'] * 100 , 2) . "%";