code: protected function filterCondition($condition)
      {
          if (!is_array($condition)) {
              return $condition;
          }
  
          if (!isset($condition[0])) {
              // hash format: 'column1' => 'value1', 'column2' => 'value2', ...
              foreach ($condition as $name => $value) {
                  if ($this->isEmpty($value)) {
                      unset($condition[$name]);
                  }
              }
  
              return $condition;
          }
  
          // operator format: operator, operand 1, operand 2, ...
  
          $operator = array_shift($condition);
  
          switch (strtoupper($operator)) {
              case 'NOT':
              case 'AND':
              case 'OR':
                  foreach ($condition as $i => $operand) {
                      $subCondition = $this->filterCondition($operand);
                      if ($this->isEmpty($subCondition)) {
                          unset($condition[$i]);
                      } else {
                          $condition[$i] = $subCondition;
                      }
                  }
  
                  if (empty($condition)) {
                      return [];
                  }
                  break;
              case 'BETWEEN':
              case 'NOT BETWEEN':
                  if (array_key_exists(1, $condition) && array_key_exists(2, $condition)) {
                      if ($this->isEmpty($condition[1]) || $this->isEmpty($condition[2])) {
                          return [];
                      }
                  }
                  break;
              default:
                  if (array_key_exists(1, $condition) && $this->isEmpty($condition[1])) {
                      return [];
                  }
          }
  
          array_unshift($condition, $operator);
  
          return $condition;
      }
docs: Removes [[isEmpty()|empty operands]] from the given query condition.
  
  @param array $condition the original condition
  @return array the condition with [[isEmpty()|empty operands]] removed.
  @throws NotSupportedException if the condition operator is not supported