Reputation: 526
I'm having a difficult time getting my head around this logic. (I've completely rewritten the data because its a work thing. But, the structure is the same.)
I have a text file that looks like this:
Ace
Hammer 12
Nails 4
Screwdriver 9
Home Depot
Nails 3
Screwdriver 11
Sawzall 43
Lowes
Hammer 10
Nails 5
Sawzall 42
Sledge 14
So there are stores that have items and items that have prices. I was able to pull it into an array that looks like this:
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"
}
I would like to format the data in an HTML table that looks like this:
Ace Home Depot Lowes
Hammer 12 x 10
Nails 4 3 5
Screwdriver 9 11 x
Sawzall x 43 42
Sledge x x 14
Since there are going to be different items for each store I figured I'd have to create an array of items and run it through array_unique. After that, it kind of falls apart. I've been trying various levels of nested loops, but I haven't been able to make anything work. I would appreciate any help getting this code written.
Upvotes: 0
Views: 90
Reputation: 2100
You have to break this down into smaller pieces. Like njk mentions in his comment you'll want to start by handling the table headers, which you can just write manually. Then all you're doing is the following code:
<td>Hammer</td>
<td>12</td>
<td>x</td>
<td>10</td>
Then the same thing, across the horizontal axis. As such, you should be able to write a function which takes 2 inputs, the first being the text of the first column, and then an array which is parsed out for the next columns, so something like
function parseArray($item, $array)
{
print '<tr>';
print '<td>' . $item . '</td>';
foreach($array as $item)
{
print '<td>' . $item . '</td>';
}
print '</tr>';
}
You can then recursively call parseArray as you iterate through your initial loop.
Upvotes: 1