code: private static function parseQualityValue($value)
      {
          $values  = preg_split("/\\s*,\\s*/", $value);
          $matched = array();
          $qvList  = array();
          foreach ($values as $item) {
              if (preg_match("/\\A([^;]+)\\s*;\\s*(.+)\\z/", $item, $matched)) {
                  $key    = $matched[1];
                  $qvalue = self::parseQvalue($matched[2]);
              } else {
                  $key    = $item;
                  $qvalue = 1.0;
              }
              $qvList[$key] = $qvalue;
          }
          return $qvList;
      }
docs: qualitiy value を配列に変換します.
  引数を "ja,en-us;q=0.8,en;q=0.6" とした場合, 返り値は以下の配列になります.
  <pre>
  array("ja" => 1.0, "en-us" => 0.8, "en" => 0.6)
  </pre>
  
  @param  string $value
  @return array