从 2 个数组 PHP 创建 table

Create table from 2 Arrays PHP

我尝试在 HTML 中获得 3 行的 Table。数据来自 XML 文件,我把它放在一个数组中,并在 table 中用 foreach 解析它。 问题是输出只正确显示一个数组,第二个数组只显示 1 个价格,共 5 个。5 个不同的价格在数组“$recordpElements”中,我已经检查过了。我做错了什么?请参见下图中的示例。

public function xmlParserVB():string
  { 
        global $obj;
 
        $valuesvb = $this->xml->xpath("OBJEKT[@ID='$obj']//SAISON");
        $valuesp = $this->xml->xpath("//OBJEKT[@ID='$obj']//SAISON//PRICE");
        
        foreach (array_slice($valuesp,0,5) as $recordpElements);
        foreach (array_slice($valuesvb,0,5) as $recordvbElements)
        
         {
            $display .= '<tr>';
            $display .= '<td>'.$recordvbElements->DESCRIPTION.'</td>';
            $display .= '<td>'.$recordvbElements->FROM.' - '.$recordvbElements->UNTIL.'</td>';
            $display .= '<td>'.$recordpElements->PRICE.' &euro;</td>';
            $display .= '</tr>';
        
    
        }
        
     $display .= '';

      return $display;
        
  }

[![在此处输入图片描述][2]][2]

我不明白你的第 5 行代码。

foreach (array_slice($valuesp,0,5) as $recordpElements);

如果您 运行 此代码,那么您将在 $recordpElements

中获得 array_slice($valuesp,0,5) 的最后一条记录

所以..您将在 $recordpElements 中获得 $valuesp 数组的第 5 条记录。

我不明白为什么价格数组($valuesp)和产品数组($valuesvb)应该分开存在,但假设这是正确的,如果产品序列和价格序列匹配,你应该尝试这样的事情:

        $price = array_slice($valuesp,0,5);
        $index = 0;
        foreach (array_slice($valuesvb,0,5) as $recordvbElements)
        {

            $display .= '<tr>';
            $display .= '<td>'.$recordvbElements->DESCRIPTION.'</td>';
            $display .= '<td>'.$recordvbElements->FROM.' - '.$recordvbElements->UNTIL.'</td>';
            $display .= '<td>'.$price[$index]->PRICE.' &euro;</td>';
            $display .= '</tr>';
        
           $index++;
        }