<?php

function somaRecursiva(&$arr){
    if (isset($arr["children"])){
        
        $arr["node_value"] = 0;
 
        foreach ($arr["children"] as $key => $value){
            $arr["node_value"] += somaRecursiva($arr["children"][$key]);
        }
        
        
    }

    return $arr["node_value"] ?? 0;
}
 
$array = array(
        "node_id"=> 1,
        "node_value" => 43.5,
        "children" => array (
            0 => array(
                "node_id" => 2,
                "node_value" => 12.4,
                "node_master" => 1),
            1 => array(
                "node_id" => 3,
                "node_value" => 52.6,
                "node_master" => 1),
            2 => array(
                    "node_id"=> 4,
                    "node_value" => 43.5,
                    "children" => array (
                        0 => array(
                            "node_id" => 5,
                            "node_value" => 49,
                            "node_master" => 4),
                        1 => array(
                            "node_id" => 6,
                            "node_value" => 40,
                            "node_master" => 4)
                    )
                )
        )
);
 
somaRecursiva($array);
 
echo "\nDepois da soma:";
print_r($array);