Calcular valor

Pessoal, tudo bem!

Estou tentando calcular o subtotal, abaixo segue o código:
function GetCarrinho($sessao=NULL)
{
$i = 1;
$sub = 1.00;
$peso = 0;

   foreach ($_SESSION['PRO'] as $lista):
       $sub = ($lista['VALOR'] * $lista['QTD']);
       
       $this->itens[$i] = array(
           'pro_id'       => $lista['ID'],
           'pro_nome'     => $lista['NOME'],
           'pro_valor'    => $lista['VALOR'],
           'pro_peso'     => $lista['PESO'],
           'pro_qtd'      => $lista['QTD'],
           'pro_img'      => $lista['IMG'],
           'pro_link'     => $lista['LINK'],
           'pro_subTotal' => Sistema::MoedaBR($sub),
        );
   $i++;
   endforeach;
   
   if(count($this->itens) > 0):
       return $this->itens;
   else:
       //echo '<script>window.alert("Sem produtos no carrinho!")';
       echo 'Sem produtos no carrinho!';
   endif;

}

Porém, estou com o seguinte aviso: “A non well formed numeric value encountered”. O aviso aponta para a linha abaixo do início do bloco “foreach”. Alguém poderia me informar o que seria esse aviso?

Obrigado.

A linha que vc se refere é essa?

$sub = ($lista['VALOR'] * $lista['QTD']);

Posta o retorno dessas variáveis usando:

var_dump($lista['VALOR'], $lista['QTD']);

O que cada um retorna? Se o $lista[‘VALOR’] contém virgula, pode dar erro no calculo…

Obs: porque vc começa os itens em 1 (todo array em php começa do zero não se esqueça disso)… 2 formas de resolver, ou vc começa o $i em 0 ou remove ele do código e adiciona dentro do foreach assim:

foreach ($_SESSION['PRO'] as $i => $lista):
    ....

E remove essas linhas:

$i = 1;
...
$i++;

Caro Rodevops, boa noite!

Analisei o código novamente, e o erro estava na conversão, ou seja, a forma correta é:

`

$sub = ($lista[‘VALOR_US’] * $lista[‘QTD’]);

`Obrigado pelo retorno.