0

例如,我有一个表单,我通过数组将值发布到下一页。我想创建一个while循环来单独打印出变量。这是我的问题。我真的有一个 XML 文档。这个 XML 文档我希望它改变变量。所以我假设实现我通过表单中的数组传递的值需要某种循环的帮助,所以我猜测 while 循环会有所帮助,因为我需要停止循环。

所以我有一个酒店表格。如果有两个房间,我想让 while 循环停在两个并插入数组表单中的值。我知道如何设置一个 while 循环,只需要一些指导来将不同的值插入到 xml 文档中。

下面是示例: * 有两个房间我希望标签 0 和标签 1 进入子属性标签,子 2 和子 3 进入子属性标签内的第二个循环。

$label[0];
$label[1];
$label[2];
$label[3];
$NumberOfRooms = $_POST['NumbersOfRooms']; 
$count = '0';

while ($count > $NumberOfRooms){ //Assuming that there is two rooms 
$xml = '<checkIn>2012-10-15 </checkIn>
<checkOut>2012-10-18</checkOut>
<numberOfAdults>1</NumberOfAdults>
<numberOfChilderen>2</NumberOfChilderen>
  <ChildAges>
  <childAge age ='."3".' /> $label[0]; 
  <childAge age ='."3".' /> $label[1]
  </ChildAges>';
$count++;
}
4

1 回答 1

0

我认为这段代码应该为您解决问题。

<?php
    $label[0];
    $label[1];
    $label[2];
    $label[3];
    $NumberOfRooms = $_POST['NumbersOfRooms']; 
    $xml="";

    for($count=0; $count<$NumberOfRooms; $count++)
    {
    $xml .= '<checkIn>2012-10-15 </checkIn>
    <checkOut>2012-10-18</checkOut>
    <numberOfAdults>1</NumberOfAdults>
    <numberOfChilderen>2</NumberOfChilderen>
      <ChildAges>
      <childAge age ='.$label[floor($count*2))].' />  
      <childAge age ='.$label[floor($count*2)+1].' />
      </ChildAges>';
    }
?>

我在您的代码中看到的错误如下:

  • $count被定义为一个字符串。您正在将其与数字进行比较。
  • 其次,假设$count从零开始,它怎么会大于房间数量?我想你搞砸了<>
  • $xml每次循环遍历 while 语句时,您都在覆盖变量。
  • Lastly, it is just my opinion, but if you know you only want to loop through a certain number of times, use a for loop over a while - there is less chance of muddling up the logic/drop out conditions.
于 2012-07-13T03:36:31.347 回答