|
Posted by deko on 02/27/07 09:59
I need to loop through a number of categories (in object $category) and compare
items (from object $itemdata) to create a list of items organized by category.
foreach ($category as $cat_item)
{
echo $cat_item->cat_name;
foreach ($itemdata as $item_datum)
{
if ($item_datum->category_id == $cat_item->cat_id)
{
echo '--'.$item_datum->item_name;
}
}
}
The output should look something like this:
Apples (cat_name)
-- red (item_name)
-- green
-- small
-- large
Oranges
-- ripe
-- rotten
The $category and $itemdata objects are created using ezSQL:
$category = $db->get_results("SELECT cat_id, cat_name ... FROM Table_A");
$itemdata = $db->get_results("SELECT category_id, item_name ... FROM Table_B");
My question is this:
How do I optimize this?
Once an $item_datum->category_id has been matched to a $cat_item->cat_id, I no
longer need that row ($item_datum) in the $itemdata object, so further
iterations of the nested foreach loop need not include the previously matched
$item_datum.
How do I remove the matched $item_datum from the $itemdata object after it has
been matched?
Will this reduce iterations of the nested foreach loop?
Thanks in advance.
Navigation:
[Reply to this message]
|