请问在页面A 通过表单POST num[],order[]两个数组到页面B,
num[]存储order[]的数量,如num[0]存储order[0]的订单数量,num[1]存储order[1]的订单数量
现如何根据POST的num[]数组中的数值在页面B 输出对应数量的order[]呢?
例如:num[0]=2,...,num[5]=8,...
order[]存储的信息是超链接:order[0]=<a href=0.html></a>,...,num[5]=<a href=5.html></a>,...在页面A POST 这些数组到页面B后,
页面B对应输出:order[0]对应有2个0.html的超链接,...,order[5]对应有8个5.html的超链接。
<?php
...
echo "<a href=0.html></a><br>\n";
...
?>
页面B怎样循环将这些数组全部输出呢?谢谢!

解决方案 »

  1.   

    把所有东西用特殊字符分隔连成一个长字符串提交,在php那里用正则或者explode什么的分拆到你预想的数组中
    举一反三:
    上面所说的字符串,思维开阔点可以认为是一个有特殊格式的文本(字串),xml就符合这个概念
    所以现在越来越多在页面(或者不同的进程)之间传递复杂数据,使用xml
      

  2.   

    谢谢你的回复,不过感觉有点复杂,刚接触PHP,对正则表达式还不熟悉,可不可以直接用for或者foreach遍历输出呢?感觉可以做到,关键是对num[]的判断,循环语句不知道该怎么写
      

  3.   

    困难在于你的order是二维数组,传递就有点麻烦了
    获取不一定用正则的因为是全输出,用循环是无法避免的
    如果你已经解决了传递的问题,自己用var_dump($_POST);看看获取的结构,用foreach就能搞定
      

  4.   

    假设用逗号隔开foreach ($order as $v)
    {
      $tmp = explode(',',$v);
      foreach ($tmp as $v1) echo $v1,PHP_EOL;
    }
      

  5.   

    谢谢你提醒,如果order[]是一维数组,下面的代码可以实现:
    $num=array(1,2,5,4,7,4,8,5);
    $order=array(a,b,c,d,e,f,g,h);
    $j=0;
    foreach($num as $key){
    for ($i=0;$i<($key);$i++){
    echo "$order[$j];";
    }
    $j++;
    }