Вывод данных из функции

Royal Flash

-=MaestrO=-
Здравствуйте.

Есть 2 функции, работающие совместно:

PHP:
// Функция 1 - Выборка ББ кода
function bb_code($content) 
  {
  $pattern = '/\[bbcode=(.*?)\]\r?\n?(.*?)\r?\n?\[\/bbcode\]/is';
  return preg_replace_callback($pattern, 'bbcode_filter_callback', $content);
  }

// Функция 2 - Действия над данными
function bbcode_filter_callback($input) 
  {
  if (isset($input[2])) 
    {
    $a = $input[1];
    $b = $input[2];
    }
  // Дальнейшая обработка данных
  return $c;
  }
Функция №1 может выбрать множество ББ кодов, 10, 20, 500 ..., и соответственно функция 2 их все обработает. Каким образом можно записать некоторые данные из функции 2 в БД?

Записывать напрямую из функции 2 - не вариант, так как необходимо записать только уникальные данные (немного обработанные значения bbcode [bbcode=значение]). Например при 200 входящих bbcode уникальными могут быть 2-3. А если это делать из функции, то прийдется сделать минимум в 2 раза больше запросов к базе, чем будет найдено bbcode (Select, Insert).

Вывести return`ом не получится, так как данные из функции 2 напрямую передаются в preg_replace_callback().

У меня есть 2 варианта решения, и я хотел бы узнать, какой на ваш взгляд будет лучшим (быстрым)?

1. Вариант.
Сделать из 2-ух функций одну с preg_match_all() и далее обработка в цикле ее результатов при помощи preg_replace().

2. Вариант.
Создать в функции2 суперглобальную переменную и обрабатывать ее (переменную) после вызова функции1.
 
Сверху