Based on the @Bacco example, I'll propose another way using array_merge_recursive . Basically it will combine the 2 arrays and generate an array of 2 keys when there is a match, then a loop with subtraction.
The example considers 2 arrays (stock and sale), where sales items are expressly in stock - only sells that are in stock.
$result = array_merge_recursive($a1, $a2);
foreach ($result as $key => $value )
{
if( is_array( $value ) )
{
$array[ $key ] = ($value[0] - $value[1]);
}
else
{
$array[ $key ] = $value;
}
}
Example in ideone , output:
+------------+-----------+-----------+-----------+-----------+
| estoque | produto.1 | produto.2 | produto.3 | produto.4 |
| quantidade | 2 | 5 | 3 | 9 |
+------------+-----------+-----------+-----------+-----------+
| venda | produto.1 | | produto.3 | |
| quantidade | 1 | | 2 | |
+------------+-----------+-----------+-----------+-----------+
| resultado | produto.1 | produto.2 | produto.3 | produto.4 |
| quantidade | 1 | 5 | 1 | 9 |
+------------+-----------+-----------+-----------+-----------+