input: Write a function to replace elements in an array based on the following rules: if an element is divisible by 3, replace it with "Fizz"; if an element is divisible by 5, replace it with "Buzz"; if an element is divisible by both 3 and 5, replace it with "FizzBuzz". If the element is not divisible by either, keep the element unchanged.
  
  def fizz_buzz(arr):
      new_arr = []
      for element in arr:
          if element % 3 == 0 and element % 5 == 0:
              new_arr.append("FizzBuzz")
          elif element % 3 == 0:
              new_arr.append("Fizz")
          elif element % 5 == 0:
              new_arr.append("Buzz")
          else:
              new_arr.append(element)
      return new_arr
  
  assert fizz_buzz([2, 3, 4, 5, 6, 15]) == [2, "Fizz", 4, "Buzz", "Fizz", "FizzBuzz"]
  assert fizz_buzz([7, 10, 12, 15, 18, 20]) == [7, "Buzz", "Fizz", "FizzBuzz", "Fizz", "Buzz"]
  assert fizz_buzz([1, 2, 3, 4, 5, 6]) == [1, 2, "Fizz", 4, "Buzz", "Fizz"]
  assert fizz_buzz([30, 31, 32, 33, 34, 35]) == ["FizzBuzz", 31, 32, "Fizz", 34, "Buzz"]
  assert fizz_buzz([]) == []
output: def fizz_buzz(arr):
      new_arr = []
      for element in arr:
          if element % 3 == 0 and element % 5 == 0:
              new_arr.append("FizzBuzz")
          elif element % 3 == 0:
              new_arr.append("Fizz")
          elif element % 5 == 0:
              new_arr.append("Buzz")
          else:
              new_arr.append(element)
      return new_arr