<?php
// Array de objetos como fornecido no exemplo.
$produtos = [
(object)[
'produto' => '000001', 'var1' => 'LR', 'var2' => 'G', 'estoque' => 4.0000
],
(object)[
'produto' => '000001', 'var1' => 'AZ', 'var2' => 'G', 'estoque' => -4.0000
],
(object)[
'produto' => '000001', 'var1' => 'VD', 'var2' => 'G', 'estoque' => 0.0000
],
(object)[
'produto' => '000001', 'var1' => 'BR', 'var2' => 'G', 'estoque' => 17.0000
],
(object)[
'produto' => '000001', 'var1' => 'VR', 'var2' => 'G', 'estoque' => 0.0000
],
// ... resto dos objetos
];
$resultado = [];
foreach ($produtos as $produto) {
// Obtendo o tamanho (último caracter de var2)
$tamanho = substr($produto->var2, -1);
// Utilizando o operador de coalescência nula (??) para simplificar a inicialização dos arrays.
$resultado[$produto->produto][$produto->var1][$tamanho] = ($resultado[$produto->produto][$produto->var1][$tamanho] ?? 0) + $produto->estoque;
}
// Para visualizar o resultado
echo "<pre>";
echo "</pre>";
PD9waHAKCi8vIEFycmF5IGRlIG9iamV0b3MgY29tbyBmb3JuZWNpZG8gbm8gZXhlbXBsby4KJHByb2R1dG9zID0gWwogICAgKG9iamVjdClbCiAgICAgICAgJ3Byb2R1dG8nID0+ICcwMDAwMDEnLCAndmFyMScgPT4gJ0xSJywgJ3ZhcjInID0+ICdHJywgJ2VzdG9xdWUnID0+IDQuMDAwMAogICAgXSwKICAgIChvYmplY3QpWwogICAgICAgICdwcm9kdXRvJyA9PiAnMDAwMDAxJywgJ3ZhcjEnID0+ICdBWicsICd2YXIyJyA9PiAnRycsICdlc3RvcXVlJyA9PiAtNC4wMDAwCiAgICBdLAogICAgKG9iamVjdClbCiAgICAgICAgJ3Byb2R1dG8nID0+ICcwMDAwMDEnLCAndmFyMScgPT4gJ1ZEJywgJ3ZhcjInID0+ICdHJywgJ2VzdG9xdWUnID0+IDAuMDAwMAogICAgXSwKICAgIChvYmplY3QpWwogICAgICAgICdwcm9kdXRvJyA9PiAnMDAwMDAxJywgJ3ZhcjEnID0+ICdCUicsICd2YXIyJyA9PiAnRycsICdlc3RvcXVlJyA9PiAxNy4wMDAwCiAgICBdLAogICAgKG9iamVjdClbCiAgICAgICAgJ3Byb2R1dG8nID0+ICcwMDAwMDEnLCAndmFyMScgPT4gJ1ZSJywgJ3ZhcjInID0+ICdHJywgJ2VzdG9xdWUnID0+IDAuMDAwMAogICAgXSwKICAgIC8vIC4uLiByZXN0byBkb3Mgb2JqZXRvcwpdOwoKJHJlc3VsdGFkbyA9IFtdOwoKZm9yZWFjaCAoJHByb2R1dG9zIGFzICRwcm9kdXRvKSB7CiAgICAvLyBPYnRlbmRvIG8gdGFtYW5obyAow7psdGltbyBjYXJhY3RlciBkZSB2YXIyKQogICAgJHRhbWFuaG8gPSBzdWJzdHIoJHByb2R1dG8tPnZhcjIsIC0xKTsKICAgIAogICAgLy8gVXRpbGl6YW5kbyBvIG9wZXJhZG9yIGRlIGNvYWxlc2PDqm5jaWEgbnVsYSAoPz8pIHBhcmEgc2ltcGxpZmljYXIgYSBpbmljaWFsaXphw6fDo28gZG9zIGFycmF5cy4KICAgICRyZXN1bHRhZG9bJHByb2R1dG8tPnByb2R1dG9dWyRwcm9kdXRvLT52YXIxXVskdGFtYW5ob10gPSAoJHJlc3VsdGFkb1skcHJvZHV0by0+cHJvZHV0b11bJHByb2R1dG8tPnZhcjFdWyR0YW1hbmhvXSA/PyAwKSArICRwcm9kdXRvLT5lc3RvcXVlOwp9CgovLyBQYXJhIHZpc3VhbGl6YXIgbyByZXN1bHRhZG8KZWNobyAiPHByZT4iOwpwcmludF9yKCRyZXN1bHRhZG8pOwplY2hvICI8L3ByZT4iOwo=