This is a bit of code, so I split it into pieces.
This is my recreation of your two arrays. The last line puts them in one.
$items = array( array( 1 => 488, 5 => '23-1000', 2 => 3, 3 => 'PRODUCT NAME', 4 => 2.50 ), array( 1 => 423, 5 => '24-2300', 2 => 1, 3 => 'PRODUCT NAME', 4 => 3.50 ), array( 1 => 506, 5 => '23-2800', 2 => 1, 3 => 'PRODUCT NAME', 4 => 2.50 ), array( 1 => 629, 5 => '01-3600', 2 => 1, 3 => 'PRODUCT NAME', 4 => 7.50 ) ); $array_2 = array( array( 1 => 629, 5 => '01-3600', 2 => 1, 3 => 'PRODUCT NAME', 4 => 7.50 ) );
Then we create two arrays that will use SKU #, and the other for identifiers.
The harder part
// Loop through the combined items foreach( $new_array as $item ) { /** * Check if the item SKU number * has been added to the $skus array. * * If it has then add the old qty with the current item's * * Else, the item hasn't been added yet, * then add the entire item to the list */ if( isset($skus[$item[5]]) ) { // If it exists, then add the new qty $skus[$item[5]][2] += $item[2]; }else { // If it doesn't exist, then append it to the array $skus[$item[5]] = $item; } // Do the same thing as above // except for the id numbers if( isset($ids[$item[1]]) ) { // If it exists, then add the new qty $ids[$item[1]][2] += $item[2]; }else { // If it doesn't exist, then append it to the array $ids[$item[1]] = $item; } }
Make sure everything is the way you want.
echo '<h2>SKU Numbers</h2>'; echo '<pre>'; print_r($skus); echo '</pre>'; echo '<h2>ID Numbers</h2>'; echo '<pre>'; print_r($ids); echo '</pre>';
Hope this helps.
EDIT
For this code to work during the actual loop, you can try something like this. Although I'm not quite sure if this will work out of the box, this should be a good place to start.
// What the items will be sorted by $skus = array(); $ids = array(); foreach( $result as $row ) { $row = unserialize($row); /** * MODIFIED * * Check if the $row SKU number * has been added to the $skus array. * * If it has then add the old qty with the current $row qty * * Else, the $row hasn't been added yet, * then add the entire $row to the list */ if( isset($skus[$row[5]]) ) { // If it exists, then add the new qty $skus[$row[5]][2] += $row[2]; }else { // If it doesn't exist, then append it to the array $skus[$row[5]] = $row; } // Do the same thing as above // except for the id numbers if( isset($ids[$row[1]]) ) { // If it exists, then add the new qty $ids[$row[1]][2] += $row[2]; }else { // If it doesn't exist, then append it to the array $ids[$row[1]] = $row; } }