code: public static function pickup(array $arr, $type, $keyFlag = false)
      {
          $result = array();
          foreach ($arr as $key => $value) {
              if (self::pickupMatch($value, $type)) {
                  if ($keyFlag) {
                      $result[$key] = $value;
                  } else {
                      $result[] = $value;
                  }
              }
          }
          return $result;
      }
docs: 配列の中から, $type で指定した型の値だけを取り出します.
  $keyFlag に TRUE を指定した場合はキーと要素の関連付けを維持します.
  $type に指定できる文字列は以下のとおりです. (大文字・小文字は区別しません)
  
  - int
  - integer
  - numeric
  - float (※ numeric と同じです. int 型の値もマッチングします.)
  - string
  - bool
  - boolean
  - array
  - object
  - resource
  - null
  
  上記に挙げた以外の文字列を指定した場合は, クラス (インタフェース) 名として扱います.
  
  @param  array  $arr     対象の配列
  @param  string $type    'int', 'integer', 'numeric', 'float', 'string', 'bool',
  'object', 'resource' など.
  それ以外の文字列はクラス (インタフェース) 名として扱う
  @param  bool   $keyFlag 関連付けを維持する場合は TRUE (デフォルトは FALSE)
  @return array