NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class Collection

Key value pair collection object

  Guzzle\Common\Collection implements ArrayAccess, IteratorAggregate, Countable, Guzzle\Common\ToArrayInterface

### Direct known subclasses

`Aws\Common\Waiter\WaiterConfig`, `Aws\S3\Model\PostObject`, `Guzzle\Http\QueryString`, `Guzzle\Service\Command\AbstractCommand`, `Guzzle\Service\Resource\Model`

### Indirect known subclasses

`Aws\Common\Command\JsonCommand`, `Aws\Common\Command\QueryCommand`, `Aws\S3\Command\S3Command`, `Guzzle\Service\Command\ClosureCommand`, `Guzzle\Service\Command\OperationCommand`

Namespace: Guzzle\Common
Located at Guzzle/Common/Collection.php

## Methods summary

- `public` `__construct ( array $data = array() )`
- `public static` `fromConfig ( array $config = array(), array $defaults = array(), array $required = array() )`

  Create a new collection from an array, validate the keys, and add default values where missing

- `public` `count ( )`
- `public` `getIterator ( )`
- `public` `toArray ( )`

  Get the array representation of an object

- `public` `clear ( )`

  Removes all key value pairs

- `public` `getAll ( array $keys = null )`

  Get all or a subset of matching key value pairs

- `public` `get ( string $key )`

  Get a specific key value.

- `public` `set ( string $key, mixed $value )`

  Set a key value pair

- `public` `add ( string $key, mixed $value )`

  Add a value to a key. If a key of the same name has already been added, the key value will be converted into an array and the new value will be pushed to the end of the array.

- `public` `remove ( string $key )`

  Remove a specific key value pair

- `public` `getKeys ( )`

  Get all keys in the collection

- `public` `hasKey ( string $key )`

  Returns whether or not the specified key is present.

- `public` `keySearch ( string $key )`

  Case insensitive search the keys in the collection

- `public` `hasValue ( string $value )`

  Checks if any keys contains a certain value

- `public` `replace ( array $data )`

  Replace the data of the object with the value of an array

- `public` `merge ( Collection|array $data )`

  Add and merge in a Collection or array of key value pair data.

- `public` `overwriteWith ( array|\Traversable $data )`

  Over write key value pairs in this collection with all of the data from an array or collection.

- `public` `map ( Closure $closure, array $context = array(), bool $static = true )`

  Returns a Collection containing all the elements of the collection after applying the callback function to each one. The Closure should accept three parameters: (string) $key, (string) $value, (array) $context and return a modified value

- `public` `filter ( Closure $closure, bool $static = true )`

  Iterates over each key value pair in the collection passing them to the Closure. If the Closure function returns true, the current value from input is returned into the result Collection. The Closure must accept three parameters: (string) $key, (string) $value and return Boolean TRUE or FALSE for each value.

- `public` `offsetExists ( mixed $offset )`
- `public` `offsetGet ( mixed $offset )`
- `public` `offsetSet ( mixed $offset, mixed $value )`
- `public` `offsetUnset ( mixed $offset )`
- `public` `setPath ( string $path, mixed $value )`

  Set a value into a nested array key. Keys will be created as needed to set the value.

- `public` `getPath ( string $path, string $separator = '/', mixed $data = null )`

  Gets a value from the collection using an array path (e.g. foo/baz/bar would retrieve bar from two nested arrays) Allows for wildcard searches which recursively combine matches up to the level at which the wildcard occurs. This can be useful for accepting any key of a sub-array and combining matching keys from each diverging path.

## Methods detail

# `public`
`__construct( array $data = array() )`

#### Parameters

$data
  `array`
  $data Associative array of data to set

# `public static `Guzzle\Common\Collection``
`fromConfig( array $config = array(), array $defaults = array(), array $required = array() )`

Create a new collection from an array, validate the keys, and add default values where missing

#### Parameters

$config
  `array`
  $config Configuration values to apply.
$defaults
  `array`
  $defaults Default parameters
$required
  `array`
  $required Required parameter names

#### Returns

``Guzzle\Common\Collection``

#### Throws

``Guzzle\Common\Exception\InvalidArgumentException``
if a parameter is missing
# `public`
`count( )`

#### Implementation of

`Countable::count()`
# `public`
`getIterator( )`

#### Implementation of

`IteratorAggregate::getIterator()`
# `public array`
`toArray( )`

Get the array representation of an object

#### Returns

`array`

#### Implementation of

`Guzzle\Common\ToArrayInterface::toArray()`
# `public `Guzzle\Common\Collection``
`clear( )`

Removes all key value pairs

#### Returns

``Guzzle\Common\Collection``
# `public array`
`getAll( array $keys = null )`

Get all or a subset of matching key value pairs

#### Parameters

$keys
  `array`
  $keys Pass an array of keys to retrieve only a subset of key value pairs

#### Returns

`array`
Returns an array of all matching key value pairs
# `public mixed|null`
`get( string $key )`

Get a specific key value.

#### Parameters

$key
  `string`
  $key Key to retrieve.

#### Returns

`mixed|null`
Value of the key or NULL
# `public `Guzzle\Common\Collection``
`set( string $key, mixed $value )`

Set a key value pair

#### Parameters

$key
  `string`
  $key Key to set
$value
  `mixed`
  $value Value to set

#### Returns

``Guzzle\Common\Collection``
Returns a reference to the object
# `public `Guzzle\Common\Collection``
`add( string $key, mixed $value )`

Add a value to a key. If a key of the same name has already been added, the key value will be converted into an array and the new value will be pushed to the end of the array.

#### Parameters

$key
  `string`
  $key Key to add
$value
  `mixed`
  $value Value to add to the key

#### Returns

``Guzzle\Common\Collection``
Returns a reference to the object.
# `public `Guzzle\Common\Collection``
`remove( string $key )`

Remove a specific key value pair

#### Parameters

$key
  `string`
  $key A key to remove

#### Returns

``Guzzle\Common\Collection``
# `public array`
`getKeys( )`

Get all keys in the collection

#### Returns

`array`
# `public boolean`
`hasKey( string $key )`

Returns whether or not the specified key is present.

#### Parameters

$key
  `string`
  $key The key for which to check the existence.

#### Returns

`boolean`
# `public boolean|string`
`keySearch( string $key )`

Case insensitive search the keys in the collection

#### Parameters

$key
  `string`
  $key Key to search for

#### Returns

`boolean|string`
Returns false if not found, otherwise returns the key
# `public mixed`
`hasValue( string $value )`

Checks if any keys contains a certain value

#### Parameters

$value
  `string`
  $value Value to search for

#### Returns

`mixed`
Returns the key if the value was found FALSE if the value was not found.
# `public `Guzzle\Common\Collection``
`replace( array $data )`

Replace the data of the object with the value of an array

#### Parameters

$data
  `array`
  $data Associative array of data

#### Returns

``Guzzle\Common\Collection``
Returns a reference to the object
# `public `Guzzle\Common\Collection``
`merge( `Guzzle\Common\Collection`|array $data )`

Add and merge in a Collection or array of key value pair data.

#### Parameters

$data
  ``Guzzle\Common\Collection`|array`
  $data Associative array of key value pair data

#### Returns

``Guzzle\Common\Collection``
Returns a reference to the object.
# `public `Guzzle\Common\Collection``
`overwriteWith( array|`Traversable` $data )`

Over write key value pairs in this collection with all of the data from an array or collection.

#### Parameters

$data
  `array|`Traversable``
  $data Values to override over this config

#### Returns

``Guzzle\Common\Collection``
# `public `Guzzle\Common\Collection``
`map( `Closure` $closure, array $context = array(), boolean $static = true )`

Returns a Collection containing all the elements of the collection after applying the callback function to each one. The Closure should accept three parameters: (string) $key, (string) $value, (array) $context and return a modified value

#### Parameters

$closure
  ``Closure``
  $closure Closure to apply
$context
  `array`
  $context Context to pass to the closure
$static
  `boolean`
  $static Set to TRUE to use the same class as the return rather than returning a Collection

#### Returns

``Guzzle\Common\Collection``
# `public `Guzzle\Common\Collection``
`filter( `Closure` $closure, boolean $static = true )`

Iterates over each key value pair in the collection passing them to the Closure. If the Closure function returns true, the current value from input is returned into the result Collection. The Closure must accept three parameters: (string) $key, (string) $value and return Boolean TRUE or FALSE for each value.

#### Parameters

$closure
  ``Closure``
  $closure Closure evaluation function
$static
  `boolean`
  $static Set to TRUE to use the same class as the return rather than returning a Collection

#### Returns

``Guzzle\Common\Collection``
# `public`
`offsetExists( mixed $offset )`

#### Implementation of

`ArrayAccess::offsetExists()`
# `public`
`offsetGet( mixed $offset )`

#### Implementation of

`ArrayAccess::offsetGet()`
# `public`
`offsetSet( mixed $offset, mixed $value )`

#### Implementation of

`ArrayAccess::offsetSet()`
# `public`
`offsetUnset( mixed $offset )`

#### Implementation of

`ArrayAccess::offsetUnset()`
# `public `Guzzle\Common\Collection``
`setPath( string $path, mixed $value )`

Set a value into a nested array key. Keys will be created as needed to set the value.

#### Parameters

$path
  `string`
  $path Path to set
$value
  `mixed`
  $value Value to set at the key

#### Returns

``Guzzle\Common\Collection``

#### Throws

``Guzzle\Common\Exception\RuntimeException``
when trying to setPath using a nested path that travels through a scalar value
# `public mixed|null`
`getPath( string $path, string $separator = '/', mixed $data = null )`

Gets a value from the collection using an array path (e.g. foo/baz/bar would retrieve bar from two nested arrays) Allows for wildcard searches which recursively combine matches up to the level at which the wildcard occurs. This can be useful for accepting any key of a sub-array and combining matching keys from each diverging path.

#### Parameters

$path
  `string`
  $path Path to traverse and retrieve a value from
$separator
  `string`
  $separator Character used to add depth to the search
$data
  `mixed`
  $data Optional data to descend into (used when wildcards are encountered)

#### Returns

`mixed|null`

### Magic methods summary

## Properties summary

`protected array` | $data | # Data associated with the object.