<SCRIPT language="VBScript">
num = "1,2,5,6,8,10"
tmpnum=split(num,",")
dim arrnum
redim arrnum(tmpnum(ubound(tmpnum)))
for i=0 to ubound(arrnum)
  arrnum(i)=0
next
for i=0 to ubound(tmpnum)
  arrnum(tmpnum(i))=tmpnum(i)
next
msgbox(join(arrnum,","))
</SCRIPT>写得有点乱,不过差不多就是这个意思了,定义一个数组,设array(i)的所有值为0,然后以array(i)=i这种方式赋值,i是已有的数值,再合并数组为一个字符串

解决方案 »

  1.   

    取出最大数,
    设置一个数组。让数组元素都为 "0"
    再循环一次。设置出现的数字的对应的数组元素的值等于数字。
    再把数组用"," 组合就成。
    1,2,5,7,10array a();
    a[1]="1";
    a[2]="2";
    a[3]="0";
    a[4]="0";
    a[5]="5";
    a[6]="0";
    a[7]="7";
    a[8]="0";
    a[9]="0";
    a[10]="10";
     这样,这个数组再用 "," 组合就成。
    1,2,0,0,5,0,7,0,0,10 了
      

  2.   

    $str = "1,2,5,7,10";
    $num = explode("," $str);
    sort($num, SORT_NUMERIC);
    $j = 0;
    for ($i = $num[0]; $i < $num[sizeof($num)-1]; $i ++)
    {
        if ($i == $num[$j])
        {
             echo $i.",";
             $j ++;
        } else if ( $i < $num[$j])
        {
             echo "0,";
        } else {
             // 在排序的情况下,不会大于
        }
    }
      

  3.   

    刚才调试了一下上面有错误,正确的是如下:
    <?php
    $str = "1,2,5,7,100";
    $num = explode(",", $str);
    sort($num);
    $j = 0;
    for ($i = $num[0]; $i <= $num[sizeof($num)-1]; $i ++)
    {
    if ($i == $num[$j])
    {
     echo $i.",";
     $j ++;
    } else if ( $i < $num[$j])
    {
     echo "0,";
    } else {
     // 在排序的情况下,不会大于
    }
    }
    ?>
      

  4.   

    楼上的要循环 100次。
    下面的不会。<?php
    $str = "1,2,5,7,100";
    $num = explode(",", $str);
    sort($num);
    $a=array_fill(1, $num[sizeof($num)-1], '0');  //取得最大值并 把数组全赋 '0'
    for($i=0;$i<sizeof($num);$i++){
    $a[$num[$i]]=$num[$i];  //给对就元素赋值。
    }
    $result=implode(",", $a);  //生成结果。
             echo $result;  //显示
    ?>
      

  5.   

    谢谢 Meteorlet(Meteorlet) ( ) 和 mrshelly(Shelly) ( )
      

  6.   

    mrshelly(Shelly)的方法看起来是没有100次循环,但是array_fill不需要循环赋值吗?赋0跟赋数字都是一样的,除非编译优化。而且用那么大的一个数组来保存结果,增加了空间复杂度。还有一点,没有通用性,如果不是整数,是小数,这样做就有问题了,而我只需要更改步长就可以,象这样:
    for ($i = $num[0]; $i <= $num[sizeof($num)-1]; $i += 0.001)