0

我很难理解这个逻辑。(我已经完全重写了数据,因为它是一个工作的东西。但是,结构是一样的。)

我有一个如下所示的文本文件:

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 运行它。在那之后,它有点分崩离析。我一直在尝试各种级别的嵌套循环,但我无法使任何工作。对于编写此代码的任何帮助,我将不胜感激。

4

1 回答 1

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。

于 2013-01-08T17:25:16.857 回答