从 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.' €</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.' €</td>';
$display .= '</tr>';
$index++;
}
我尝试在 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.' €</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.' €</td>';
$display .= '</tr>';
$index++;
}