做了一个很简单的测试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页面打印出来看看!
$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页面打印出来看看!
=>
$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]);
=>
$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页面的结果。
<?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>看看对楼主有没有帮助!
但是为什么换为$num=array("$result[num_1]","$result[num_2]","$result[num_3]");就不行呢?
应该怎样修改呢?可不可以先将$result[num_1]的类型转化为字符串,之后在由字符串转为数值?
只来说说数组吧.数组索引为字符串时,要加上引号,这是手册上要说的,并没有什么错误.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']);
是否有值????
<?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];?>
array("$result[num_1]")这样写是有问题的,懂不?array($result['num_1'],$result['num_2'],$result['num_3']);