<?php
function insertlist(&$arr,$val,$i)
{
$count=count($arr);
if($i<1 || $i>$count+1) //非法位置
{
die("位置错误");
}
for($j=$count-1;$j>=$i-1;--$j) //数组从后向前移动
{
$arr[j+1]=$arr[j];
}
$arr[$i-1]=$val;
} $arr=array();
insertlist($arr,1,1);
echo "arr大小为:".count($arr)."<br/>";
insertlist($arr,1,1);
echo "arr大小为:".count($arr)."<br/>";
insertlist($arr,2,1);
echo "arr大小为:".count($arr)."<br/>";
insertlist($arr,2,1);
echo "arr大小为:".count($arr)."<br/>";
insertlist($arr,3,1);
echo "arr大小为:".count($arr)."<br/>";
insertlist($arr,3,1);
echo "arr大小为:".count($arr)."<br/>";//_______________为什么每一个count($arr)输出都是2? foreach($arr as $val)
{
echo "$val <br/>";
}
/*
这是输入结果
arr大小为:1
arr大小为:2
arr大小为:2
arr大小为:2
arr大小为:2
arr大小为:2

换成php语言写.我连这都写不出来了,看了半找不到问题.BS自己.
*/
?>

解决方案 »

  1.   

    哎……你这是何苦呢。
    <?php
    function insertlist(&$arr,$val,$i)
    {
    $count=count($arr);
    if($i <1 || $i>$count+1) //非法位置
    {
    die("位置错误");
    }
    for($j=$count-1;$j>=$i-1;--$j) //数组从后向前移动
    {
    $arr[$j+1]=$arr[$j];
    }
    $arr[$i-1]=$val;
    }$arr=array();
    insertlist($arr,1,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,1,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,2,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,2,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,3,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,3,1);
    echo "arr大小为:".count($arr)." <br/>";//_______________为什么每一个count($arr)输出都是2?foreach($arr as $val)
    {
    echo "$val <br/>";
    }
    /*
    这是输入结果
    arr大小为:1 
    arr大小为:2 
    arr大小为:3 
    arr大小为:4 
    arr大小为:5 
    arr大小为:6 





    1 你有两处$j把$漏掉了。。
    */
    ?> 
      

  2.   

    靠……不让修改。
    从贴一次
    <?php
    function insertlist(&$arr,$val,$i)
    {
    $count=count($arr);
    if($i <1 || $i>$count+1) //非法位置
    {
    die("位置错误");
    }
    for($j=$count-1;$j>=$i-1;--$j) //数组从后向前移动
    {
    $arr[$j+1]=$arr[$j];
    }
    $arr[$i-1]=$val;
    }$arr=array();
    insertlist($arr,1,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,1,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,2,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,2,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,3,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,3,1);
    echo "arr大小为:".count($arr)." <br/>";//_______________为什么每一个count($arr)输出都是2?foreach($arr as $val)
    {
    echo "$val <br/>";
    }
    ?> 
      

  3.   

    再贴一次……
    <?php
    function insertlist(&$arr,$val,$i)
    {
    $count=count($arr);
    if($i <1 || $i>$count+1) //非法位置
    {
    die("位置错误");
    }
    for($j=$count-1;$j>=$i-1;--$j) //数组从后向前移动
    {
    $arr[$j+1]=$arr[$j];
    }
    $arr[$i-1]=$val;
    }$arr=array();
    insertlist($arr,1,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,1,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,2,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,2,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,3,1);
    echo "arr大小为:".count($arr)." <br/>";
    insertlist($arr,3,1);
    echo "arr大小为:".count($arr)." <br/>";foreach($arr as $val)
    {
    echo "$val <br/>";
    }
    ?>