Допустим у нас есть:

Первый массив

array(
    array(
        'position' => 125632,
        'balance' => 4
    ),
    array(
        'position' => 112332,
        'balance' => 4
    ),
    array(
        'position' => 124442,
        'balance' => 2
    ),
    array(
        'position' => 545632,
        'balance' => 8
    ),
    array(
        'position' => 629652,
        'balance' => 2
    ),
)

Второй массив

array(
    array(
        'position' => 125632,
        'positionQuantity' => 2
    ),
    array(
        'position' => 112332,
        'positionQuantity' => 1
    ),
    array(
        'position' => 124442,
        'positionQuantity' => 1
    ),
    array(
        'position' => 545632,
        'positionQuantity' => 5
    ),
    array(
        'position' => 629652,
        'positionQuantity' => 1
    ),
)

И вот такой результат нам нужно получить

array(
    array(
        'position' => 125632,
        'balance' => 2
    ),
    array(
        'position' => 112332,
        'balance' => 3
    ),
    array(
        'position' => 124442,
        'balance' => 1
    ),
    array(
        'position' => 545632,
        'balance' => 3
    ),
    array(
        'position' => 629652,
        'balance' => 1
    ),
)

Решение, которое первым пришло на ум

$newArray1 = array_column($array1, 'position', 'balance');
$newArray2 = array_column($array2, 'positionQuantity', 'position');
foreach ($array1 as $value) {
    $returPositions[] = array(
        'position' => $value['position'],
        'balance' => $value['balance'] - $newArray2[$value['position']],
    );
};

После был найден более лаконичный и быстрый вариант решения

$result = array_map(function($a,$b ){
                $a['balance'] -= $b['positionQuantity'];
                return $a;
            }, $array1, $array2);