could something like this be okay?
I only ask you to study this code not to implement it, for the simple reason that in the future you may have the same type of problem.
  function setValue($key,$value,&$array){
    $find_parts = explode(".", $key);
    $find = $find_parts[0]??null;
    if ($find!=null){
      if ($find == "*"){
        array_shift($find_parts);
        foreach($array as &$sub_array){
            setValue(implode(".",$find_parts),$value,$sub_array);
        }
      }else{
        if (count($find_parts)>1){
          if (array_key_exists($find,$array)){
            array_shift($find_parts);
            setValue(implode(".",$find_parts),$value,$array[$find]);
          }
        }else{
          if (array_key_exists($find,$array)){
            $array[$find] = $value;
          }
        }
      }
    }
  }
 function defineNewValues(&$arr, $keys) {
    foreach($keys as $key=>$value){
      setValue($key,$value,$arr);
    }
 }
 
 $myArray=[
    "data"=>[
        "a"=>[
            "content"=>[
                "aa"=>[
                    "price" => 3,
                    "profit" => 2,
                    "other" => 1
                ],
                "ab"=>[
                    "price" => 3,
                    "profit" => 2,
                    "other" => 2
                ]
            ]
        ],  
        "b"=>[
            "content"=>[
                "ba"=>[
                    "price" => 3,
                    "profit" => 2,
                    "other" => 4
                ],
                "bb"=>[
                    "price" => 3,
                    "profit" => 2,
                    "other" => 5
                ]
            ]
        ],
    ]    
 ];
 
 defineNewValues($myArray, [
    "data.*.content.*.price" => 0,
    "data.*.content.*.profit" => 0,
 ]);
 
 print_r($myArray);
/* OUTPUT
Array
(
    [data] => Array
        (
            [a] => Array
                (
                    [content] => Array
                        (
                            [aa] => Array
                                (
                                    [price] => 0
                                    [profit] => 0
                                    [other] => 1
                                )
                            [ab] => Array
                                (
                                    [price] => 0
                                    [profit] => 0
                                    [other] => 2
                                )
                        )
                )
            [b] => Array
                (
                    [content] => Array
                        (
                            [ba] => Array
                                (
                                    [price] => 0
                                    [profit] => 0
                                    [other] => 4
                                )
                            [bb] => Array
                                (
                                    [price] => 0
                                    [profit] => 0
                                    [other] => 5
                                )
                        )
                )
        )
)
*/