我很难理解这个逻辑。 (我完全重写了数据,因为它是一个工作的东西。但是,结构是一样的。)
我有一个看起来像这样的文本文件:
Ace
Hammer 12
Nails 4
Screwdriver 9
Home Depot
Nails 3
Screwdriver 11
Sawzall 43
Lowes
Hammer 10
Nails 5
Sawzall 42
Sledge 14
因此,有些商店的商品和商品都有价格。我能够把它拉成一个看起来像这样的数组:
array(3) {
["Ace"]=>
array(3) {
[0]=>
array(2) {
[0]=>
string(5) "Hammer"
[1]=>
string(1) "12"
}
[1]=>
array(2) {
[0]=>
string(5) "Nails"
[1]=>
string(1) "4"
}
[2]=>
array(2) {
[0]=>
string(5) "Screwdriver"
[1]=>
string(1) "9"
}
我想格式化HTML表中的数据,如下所示:
Ace Home Depot Lowes
Hammer 12 x 10
Nails 4 3 5
Screwdriver 9 11 x
Sawzall x 43 42
Sledge x x 14
由于每个商店都会有不同的商品,我想我必须创建一个商品数组并通过array_unique运行它。在那之后,它有点崩溃。我一直在尝试各种级别的嵌套循环,但我无法做任何工作。感谢您编写此代码的任何帮助。
答案 0 :(得分:1)
你必须把它分解成更小的部分。就像njk在他的评论中提到的那样,你想要从处理表头开始,你可以手动编写。然后您所做的就是以下代码:
<td>Hammer</td>
<td>12</td>
<td>x</td>
<td>10</td>
然后横跨水平轴同样的事情。因此,您应该能够编写一个带有2个输入的函数,第一个是第一列的文本,然后是一个为下一列解析出来的数组,所以类似
function parseArray($item, $array)
{
print '<tr>';
print '<td>' . $item . '</td>';
foreach($array as $item)
{
print '<td>' . $item . '</td>';
}
print '</tr>';
}
然后,您可以在迭代初始循环时递归调用parseArray。