I originally posted this Other Question and have expanded my question and moved onto this question from it.
I'm trying to split up an array and remove some partial unique values from a MYSQL SELECT QUERY with PHP.
Here's the out put I'm getting...
Array ( [Order_ID] => 1 [Customer_ID] => 42534 [OrderDate] => [lotCode] => 401042 [qty] => 8 [0] =>
Array ( [0] => 1 [Order_ID] => 1 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => 993647 [lotCode] => 993647 [4] => 9 [qty] => 9 ) [1] =>
Array ( [0] => 1 [Order_ID] => 1 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => 401040 [lotCode] => 401040 [4] => 55 [qty] => 55 ) [2] =>
Array ( [0] => 1 [Order_ID] => 1 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => 401040 [lotCode] => 401040 [4] => 66 [qty] => 66 ) [3] =>
Array ( [0] => 1 [Order_ID] => 1 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => 401042 [lotCode] => 401042 [4] => 8 [qty] => 8 ) )
Array ( [Order_ID] => 7 [Customer_ID] => 42534 [OrderDate] => [0] =>
Array ( [0] => 2 [Order_ID] => 2 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => [lotCode] => [4] => [qty] => ) [1] =>
Array ( [0] => 3 [Order_ID] => 3 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => [lotCode] => [4] => [qty] => ) [2] =>
Array ( [0] => 4 [Order_ID] => 4 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => [lotCode] => [4] => [qty] => ) [3] =>
Array ( [0] => 5 [Order_ID] => 5 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => [lotCode] => [4] => [qty] => ) [4] =>
Array ( [0] => 6 [Order_ID] => 6 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => [lotCode] => [4] => [qty] => ) [5] =>
Array ( [0] => 7 [Order_ID] => 7 [1] => 42534 [Customer_ID] => 42534 [2] => [OrderDate] => [3] => [lotCode] => [4] => [qty] => ) )
From this Query...
<?php
$withLotCodes = array();
$noLotCodes = array();
$OrdersToShip2 = mysql_query("
SELECT o.Order_ID, o.Customer_ID, o.OrderDate, olc.lotCode, olc.qty
FROM Orders o
LEFT JOIN OrdersLotCodes olc ON o.Order_ID = olc.Order_ID
WHERE o.LotCoded = 0 ORDER BY o.Order_ID");
if($OrdersToShip2) {
while ($info = mysql_fetch_array($OrdersToShip2))
{
if(!isset($info['lotCode'])){
// if NO lotCode
$noLotCodes['Order_ID'] = $info['Order_ID'];
$noLotCodes['Customer_ID'] = $info['Customer_ID'];
$noLotCodes['OrderDate'] = $info['OrderDate'];
array_push($noLotCodes,$info);
}else{
// if YES lotCode
$withLotCodes['Order_ID'] = $info['Order_ID'];
$withLotCodes['Customer_ID'] = $info['Customer_ID'];
$withLotCodes['OrderDate'] = $info['OrderDate'];
$withLotCodes['lotCode'] = $info['lotCode'];
$withLotCodes['qty'] = $info['qty'];
array_push($withLotCodes,$info);
}
}
}else{
echo "encountered an error.".mysql_error();
}
print_r($withLotCodes);
echo '<br><br>';
print_r($noLotCodes);
mysql_close($conn);
?>
As you see, it breaks the array up into orders that have 'lotCodes' and orders that do not so I now have two arrays.
Now, I'm trying to remove the duplicate values for the 'Order_ID' 'Customer_ID & 'OrderDate' that have the 'lotCode' values in the first array. I only want them to appear once followed by the lotCode values as many as they may be.
I tried using array_unique but that removed the rest with the lotCodes that I need for the output.
So, what I'm going for would be something like:
Order_ID, Customer_ID, OrderDate, lotCode, qty, lotCode, qty, lotCode, qty, lotCode, qty
Instead of:
Order_ID, Customer_ID, OrderDate, lotCode, qty
Order_ID, Customer_ID, OrderDate, lotCode, qty
Order_ID, Customer_ID, OrderDate, lotCode, qty
Order_ID, Customer_ID, OrderDate, lotCode, qty
I hope that's clear.
Any suggestions on this guys?