I'm from a VB; Access; SQL Server background recently introduced to WAMP. I have a problem which I have not been able to solve for a few weeks now, I think I have visited every forum on the web (including here) without success.
I have two arrays filled from MySQL recordsets, one for the site Cart and the other for one of the site departments (catalogs) see a manual interpretation of the filled arrays below.
$catalog[] = array(
array('ProdID'=>2,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>6,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>7,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>8,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>9,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
);
$cart[] = array(
array('Name'=>'Alpha2','Loc'=>'e_vol1','BasketID'=>'81','ProdID'=>'2','Quant'=>'1'),
array('Name'=>'Beta4','Loc'=>'e_vol2','BasketID'=>'81','ProdID'=>'4','Quant'=>'1'),
array('Name'=>'Alpha8','Loc'=>'e_vol3','BasketID'=>'81','ProdID'=>'8','Quant'=>'1'),
array('Name'=>'Gamma21','Loc'=>'e_vol4','BasketID'=>'81','ProdID'=>'21','Quant'=>'1'),
);
What I need to do is loop through the catalog array each time a new catalog is chosen, comparing the ProdID of each row in the cart against the ProdID of each row of the catalog, when a match is found I would like to update the catalog 'InBasket' value for that row only to '1' to indicate that the item is already in the customers cart which I can then show on screen (The customer is only allowed to purchase one of any item).
There are five different departments (catalogs) which will contain up to 10 products the cart will contain say four items (If I'm lucky)
I have tried some loops but they don't seem to work.
for ($x = 0; $x < count($catalog); $x++)
{
for ($y = 0; $y < count($cart); $y++)
{
If ($catalog[$x]['ProductID'] == $cart[$y]['ProductID'] )
{
$cart[$x]['InBasket'] = 1;
}
}
}
I hpoe that my arrays are correct, but, the loops seem to update 'InBasket' regardless.
Any ideas would be appreciated.
foreach()command, rather than the for statement, which is typical of VB.