original_string: protected function _getPasswordRules(array $current, array $codes, array &$rules)
      {
          foreach ($current as $key => $value) {
              if (is_array($value)) {
                  // Only act when this is in the set of key values
                  if (isset($codes[strtolower($key)])) {
                      $this->_getPasswordRules($value, $codes, $rules);
                  }
              } else {
                  $rules[$key] = $value;
              }
          }
      }
code: protected function _getPasswordRules(array $current, array $codes, array &$rules)
      {
          foreach ($current as $key => $value) {
              if (is_array($value)) {
                  // Only act when this is in the set of key values
                  if (isset($codes[strtolower($key)])) {
                      $this->_getPasswordRules($value, $codes, $rules);
                  }
              } else {
                  $rules[$key] = $value;
              }
          }
      }
code_tokens: protected function _getPasswordRules ( array $ current , array $ codes , array & $ rules ) { foreach ( $ current as $ key => $ value ) { if ( is_array ( $ value ) ) { // Only act when this is in the set of key values
   if ( isset ( $ codes [ strtolower ( $ key ) ] ) ) { $ this -> _getPasswordRules ( $ value , $ codes , $ rules ) ; } } else { $ rules [ $ key ] = $ value ; } } }
docstring: Add recursively the rules active for this specific set of codes.
  
  @param array $current The current (part)sub) array of $this->passwords to check
  @param array $codes An array of code names that identify rules that should be used only for those codes.
  @param array $rules The array that stores the activated rules.
  @return void
docstring_tokens: Add recursively the rules active for this specific set of codes .