本帖最后由 inetcc 于 2010-05-19 21:38:23 编辑

解决方案 »

  1.   

    $tmpArr = array();
    foreach ($_REQUEST as $k => $v){//以sort做为数组的下标,把相关值存入数组
    if (substr($k,0,4)=='name'){
    $i = substr($k,-1);
    $tmpArr[${'sort'.$i}] = array(${'name'.$i},${'pic'.$i});
    }
    }$i = 0;
    $good = '';
    while (true){ //从0下标开始循环,保证sort从小到大排序
    if (isset($tmpArr[$i])){
    $good .=$tmpArr[$i][0].'|'.$tmpArr[$i][0].'|'.$i.'\r\n';
    $j++;
    }
    if (count($tmpArr)<$j ){//退出条件
    break;
    }
    }
    $goods = addslashes($goods);
    echo $goods;希望对你有帮助.
      

  2.   

    for($i=30; $i>=1; $i--)
      

  3.   

    按照blue44sky的方法还是不行 但是还是非常感谢blue44sky
      

  4.   

    这样写,注意红色部分的变化$goods = array();
        for($i=1; $i<=30; $i++)
        {
            if(!empty(${'name'.$i}))
            {
                $name = ${'name'.$i};
                $pic = ${'pic'.$i};
                $sort = ${'sort'.$i};            if($name != "")
                {
                $goods[$sort] = "$name|$pic|$sort\r\n";
                }
            }
        }
        ksort($goods);
     $goods = addslashes(join('', $goods));
      

  5.   

    <html>
    <head><title>文件上传测试</title>
    </head>
    <body>
    <form action="#" name="form1" method="post">
    商品:<input type='text' name='name1' style='width:80px' value='商品A' />  
    图片:<input type='text' name='pic1' style='width:150px' value='' />
    排序:<input type='text' name='sort1' style='width:25px' value='2' /> 
    <br>
    商品:<input type='text' name='name2' style='width:80px' value='商品B' />  
    图片:<input type='text' name='pic2' style='width:150px' value='' />
    排序:<input type='text' name='sort2' style='width:25px' value='1' /> 
    <br>
    商品:<input type='text' name='name5' style='width:80px' value='商品B' />  
    图片:<input type='text' name='pic5' style='width:150px' value='' />
    排序:<input type='text' name='sort5' style='width:25px' value='5' /> 
    <input type="submit" name="ok" value="ok">
    </form>
    </body>
    </html>
    <?php
    if(isset($_REQUEST['ok'])) {
    $tmpArr    = array();
    foreach ($_REQUEST as $k => $v){//以sort做为数组的下标,把相关值存入数组
    if (substr($k,0,4)=='name'){
    $i    = substr($k,-1);
    $tmpArr[$_REQUEST["sort$i"]]    = array($_REQUEST["name$i"],$_REQUEST["pic$i"]);
    }
    }

    $i      = 0;
    $j = 0;
    $good   = '';
    while ($j<count($tmpArr)){    //从0下标开始循环,保证sort从小到大排序
    if (isset($tmpArr[$i][0])){
    $good    .=$tmpArr[$i][0].'|'.$tmpArr[$i][1].'|'.$i.'\r\n';
    echo($tmpArr[$i][0].$tmpArr[$i][1].$i.'<br>');
    $j++;
    }
    $i++;
    }
    $good = addslashes($good);
    echo $good;

    ?>
    测试可以,你再试试吧
      

  6.   

    多谢blue44sky了,测试可以了。之前我用了一个土方法,输出结果之后,再读取结果,读取的时候代入排序值,之后再循环处理输出结果寸入数据库