Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 组合2个while循环结果_Php_While Loop - Fatal编程技术网

Php 组合2个while循环结果

Php 组合2个while循环结果,php,while-loop,Php,While Loop,我们有两个while循环,两个循环都显示了两个不同的结果 我们需要合并或不合并我们需要合并2个结果 在下图中 第一个while循环结果=>1、2、6行 第二个while循环结果=>第三、第四、第五行 我们需要第3、第4和第5行结果,在最后2列中的第1、第2和第6行[支付状态和佣金] 第一个结果来自数据库1,第二个结果来自数据库2和表[order_details] 我尝试了下面的代码,但结果如下图-表示只显示2行,而不是23行 while (($k < count($orderitemsar

我们有两个while循环,两个循环都显示了两个不同的结果

我们需要合并或不合并我们需要合并2个结果

在下图中

第一个while循环结果=>1、2、6行

第二个while循环结果=>第三、第四、第五行

我们需要第3、第4和第5行结果,在最后2列中的第1、第2和第6行[支付状态和佣金]

第一个结果来自数据库1,第二个结果来自数据库2和表[order_details]

我尝试了下面的代码,但结果如下图-表示只显示2行,而不是23行

while (($k < count($orderitemsarray)) &&  ($data = $stmt->fetch()))
全文如下:


我是php world的新手,在这里发布之前尝试了很多…

问题是,每当您使用空括号[]时,会自动分配一个索引,该索引等于下一个可用的数值,并且您的数据将位于下一个位置,因此需要正确的索引来解决此问题

在while$kfetch中

如果其中一个条件失败,那么循环结束,$数据可能只有三个条目,它只显示了那么多,即使$orderitemsarray还有更多条目,我不确定,但您可以用If语句替换while,并像这样更改索引,使这些条目附加到同一行上

$indx=0;

foreach($order as $orderData) 
{ 
  $k = 0; 
//.. Stufff

/* 2nd while */
if($indx == 0 || $indx == 1 || $indx == 5)
{
  if($data = $stmt->fetch())   
  {   
    $size = count($responce); // get size from that get its last index
    $responce[$size-1] = array(
      $data['dorder_id'],
      $data['dpaid_status'],
      $data['commission']
    ); 
   $k++; //<-- not sure why it's here but doesn't matter may be some magento stuff?
  }  
}
$indx++
}

因为一个好问题而被否决真的很痛苦。。。。。。至少你可以留下评论,告诉我哪里出了问题,这样我就可以从错误中吸取教训……很遗憾有人在没有正确阅读的情况下被否决了我收到了你的问题,但很抱歉我不知道magento。你能告诉我哪个var持有你的数组吗?或者我可以根据您的问题假设我的示例数据吗?嗯。尝试删除$indx及其条件。如果您成功了,我只是随便猜了几下,但我想我学到了一些东西,谢谢你。。n干杯
$indx=0;

foreach($order as $orderData) 
{ 
  $k = 0; 
//.. Stufff

/* 2nd while */
if($indx == 0 || $indx == 1 || $indx == 5)
{
  if($data = $stmt->fetch())   
  {   
    $size = count($responce); // get size from that get its last index
    $responce[$size-1] = array(
      $data['dorder_id'],
      $data['dpaid_status'],
      $data['commission']
    ); 
   $k++; //<-- not sure why it's here but doesn't matter may be some magento stuff?
  }  
}
$indx++
}
   $responce[$size-1] =  array_merge($responce[$size-1] , array(
      $data['dorder_id'],
      $data['dpaid_status'],
      $data['commission']
    ) );