做了一个很简单的测试a.php<?php
$num = array("AA","BB","CC");
error_reporting (E_ALL ^ E_WARNING);//前面有查询数据输出 
session_start(); 
session_register('data'); 
$_SESSION['data']=$num;?> 
<html>
<a href="b.php">b.php</a>
</html>
b.php<?php
session_start();
$datay=$_SESSION['data'];
for ($i=0;$i <8;$i++)
echo $datay[$i];
?>能够正常打印,楼主检查你是不是数组赋值的时候有问题!在a页面打印出来看看!

解决方案 »

  1.   

    $num=array("$result[num_1]","$result[num_2]","$result[num_3]"); 
    =>
    $num=array($result[num_1],$result[num_2],$result[num_3]); 
      

  2.   


    数组的索引好像要用引号括出来的吧??
    $num=array("$result[num_1]","$result[num_2]","$result[num_3]");
    =>
    $num=array($result[num_1],$result[num_2],$result[num_3]);
    =>
    $num=array($result['num_1'],$result['num_2'],$result['num_3']);
      

  3.   

    $num=array("$result[num_1]","$result[num_2]","$result[num_3]"); 
    => 
    $num=array($result[num_1],$result[num_2],$result[num_3]); 效果是一样的吧。
    如果用单引号就不行,输出的是变量字符串。
    按2楼的方法给$num赋值为“$num = array("AA","BB","CC");”,测试之后发现确实可以显示AABBCC。但是赋值为$num=array("$result[num_1]","$result[num_2]","$result[num_3]");显示的只是Array,根本得不到$result[num_1]里面的数据,这到底是怎么回事呢?另注:$result[num_1],$result[num_1],$result[num_1]是我在A页上按条件查询后输出到A页面的结果。
      

  4.   

    a.php改成
    <?php$link = mysql_connect("localhost",'root','fre');
    mysql_select_db('test');$result = mysql_query("select * from a");
    $num = array();
    while ($row = mysql_fetch_array($result)) {
    array_push($num,$row[0]);
    }//$num = array("AA","BB","CC");
    error_reporting (E_ALL ^ E_WARNING);//前面有查询数据输出 
    session_start(); 
    session_register('data'); 
    $_SESSION['data']=$num;?> 
    <html>
    <a href="b.php">b.php</a>
    </html>看看对楼主有没有帮助!
      

  5.   

    恩,字符串确实可以,$num = array("AA","BB","CC");
    但是为什么换为$num=array("$result[num_1]","$result[num_2]","$result[num_3]");就不行呢?
    应该怎样修改呢?可不可以先将$result[num_1]的类型转化为字符串,之后在由字符串转为数值?
      

  6.   

    对别的我不多做解释.
    只来说说数组吧.数组索引为字符串时,要加上引号,这是手册上要说的,并没有什么错误.array("$result[num_1]","$result[num_2]","$result[num_3]"); 
    但这段加上引号就会出错了.
    应该改为
    array($result['num_1']",$result['num_2'],$result['num_3']);
    也等价于
    =>
    array(0=>$result['num_1']",1=>$result['num_2'],2=>$result['num_3']);
      

  7.   

    array(0=>$result['num_1'],1=>$result['num_2'],2=>$result['num_3']); 
      

  8.   

    第一:
    是否有值????
    <?php echo $result[num_1];?> 
    <?php echo $result[num_2];?> 
    <?php echo $result[num_3];?> 我的意思是 这些值能输出值么?第二: 
    $result[num_1]这些值是标单传递过来的么? POST 还是GET ? 如果是传递过来的用$_POST['num_1'] 或则 $_GET['num_1']  又或则是 $_REQUEST['num_1'] 
    第三: 
    $result[num_1]='aaaaaaaaaaaa';
    $result[num_2]='bbbbbbbbbbbb';
    $result[num_3]='cccccccccccc';
    $num=array("$result[num_1]","$result[num_2]","$result[num_3]"); 
     print_r($num);
    输出结果是: Array ( [0] => aaaaaaaaaaaa [1] => bbbbbbbbbbbb [2] => cccccccccccc )
    说明 $num=array("$result[num_1]","$result[num_2]","$result[num_3]"); 是对的!第四:
    session_start(); 前面如果有输出值的话 会报错的 !!!!  
    是不是写了echo ... 的原因???
    <?php echo $result[num_1];?> 
    <?php echo $result[num_2];?> 
    <?php echo $result[num_3];?> 
     
      

  9.   

    能够输出值,而且确实是表单传过来的数据,直接赋值就可以传值,但是如果采用array("$result[num_1]")就传不过去,555
      

  10.   

    根本没有仔细看回复.
    array("$result[num_1]")这样写是有问题的,懂不?array($result['num_1'],$result['num_2'],$result['num_3']);