<?
$txt = $_POST["test"];
if(get_magic_quotes_gpc())
  $txt = stripslashes($txt);
print_r(unserialize($txt));
?>
<form method=post action="">
<input type="hidden" name="test" value="<?php echo (serialize(array("123","234"))); ?>">
<input type=submit name=submit value=ok>

解决方案 »

  1.   

    把你要传递的数组先用写在一起用个特别的符号隔开(比如‘,’)再用split函数割开成一个数组。
      

  2.   

    用serialize()应该没有什么问题的!
      

  3.   

    奇怪,“'”怎么变成“"”了?
    由于serialize后的串中可能包含“"”,所以要用''括起来<?
    $txt = $_POST["test"];
    if(get_magic_quotes_gpc())
      $txt = stripslashes($txt);
    print_r(unserialize($txt));
    ?>
    <form method=post action="">
    <input type="hidden" name="test" value='<?php echo (serialize(array("123","234"))); ?>'>
    <input type=submit name=submit value=ok>
      

  4.   

    <?
    global $_POST
    while(list($val,$key)=each($_POST))
    {
    print($$val=key);
    }
    ?>
      

  5.   

    上面的方法都应该注意特殊字符处理的问题
    比如通过<input>传递要转义可能出现的“"”或“'”,取决于你的value用什么界定
    用先合并再分解的方式要注意“,”转义,假如你用“,”做分割符