WireArray is the base iterable array type used throughout the ProcessWire framework.

Nearly all collections of items in ProcessWire are derived from the WireArray type. This includes collections of pages, fields, templates, modules and more. As a result, the WireArray class is one you will be interacting with regularly in the ProcessWire API, whether you know it or not.

Below are all the public methods you can use to interact with WireArray types in ProcessWire. In addition to these methods, you can also treat WireArray types like regular PHP arrays, in that you can foreach() them and get or set elements using array syntax, i.e. $value = $items[$key]; to get an item or $items[] = $item; to add an item.


Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the WireArray class also inherits all the methods and properties of: Wire.

Traversal / Retrieval / Manipulation / Info / Output rendering / Other data storage / Changes / Fun tools / For hooks / Common

Show “WireArray”             Show Arguments        

Traversal

NameReturnSummary 
WireArray::and($item)
WireArrayReturn a new copy of this WireArray with the given item(s) appended
WireArray::each()
array, null, string or WireArrayPerform an action upon each item in the WireArray
WireArray::first()
Wire, mixed or boolReturns the first item in the WireArray or boolean false if empty.
Can also be used as property: WireArray::first
WireArray::getIterator()
ArrayObject or WireAllows iteration of the WireArray.
WireArray::last()
Wire, mixed or boolReturns the last item in the WireArray or boolean false if empty.
Can also be used as property: WireArray::last

Retrieval

NameReturnSummary 
WireArray::count()
intReturns the number of items in this WireArray.
Can also be used as property: WireArray::count
WireArray::eq(int $num)
Wire or nullReturns the item at the given index starting from 0, or NULL if it doesn't exist.
WireArray::explode($property)
arrayReturn a plain array of the requested property from each item
WireArray::find($selector)
WireArrayFind all items in this WireArray that match the given selector.
WireArray::findOne($selector)
Wire or boolFind a single item by selector
WireArray::findRandom(int $num)
WireArrayFind a specified quantity of random elements from this WireArray.
WireArray::findRandomTimed(int $num)
WireArrayFind a quantity of random elements from this WireArray based on a timed interval (or user provided seed).
WireArray::first()
Wire, mixed or boolReturns the first item in the WireArray or boolean false if empty.
Can also be used as property: WireArray::first
WireArray::get($key)
WireData, Page, mixed, array or nullReturns the value of the item at the given index, or null if not set.
WireArray::getAll()
$thisReturns all items in the WireArray (for syntax convenience)
WireArray::getArray()
arrayGet a PHP array of all the items in this WireArray with original keys maintained
WireArray::getKeys()
arrayReturns a regular PHP array of all keys used in this WireArray.
WireArray::getNext(Wire $item)
Wire or nullGiven an item, get the item that comes after it in the WireArray
WireArray::getPrev(Wire $item)
Wire or nullGiven an item, get the item before it in the WireArray
WireArray::getProperty(string $property)
Wire or mixedGet a predefined property of the array, or extra data that has been set.
WireArray::getRandom()
WireArray, Wire, mixed or nullGet a random item from this WireArray.
WireArray::getValues()
array or WireReturns a regular PHP array of all values used in this WireArray.
WireArray::has($key)
boolDoes this WireArray have the given item, index, or match the given selector?
WireArray::implode(string $delimiter)
stringCombine all elements into a delimiter-separated string containing the given property from each item
WireArray::index(int $num)
WireArrayReturns a new WireArray of the item at the given index.
WireArray::last()
Wire, mixed or boolReturns the last item in the WireArray or boolean false if empty.
Can also be used as property: WireArray::last
WireArray::pop()
Wire, mixed or nullPop an element off the end of the WireArray and return it
WireArray::reverse()
WireArrayReturn a new reversed version of this WireArray.
WireArray::shift()
Wire, mixed or nullShift an element off the beginning of the WireArray and return it
WireArray::slice(int $start)
WireArrayGet a slice of the WireArray.
WireArray::unique()
WireArrayReturn a new array that is unique (no two of the same elements)

Manipulation

NameReturnSummary 
WireArray::add($item)
$thisAdd an item to the end of the WireArray.
WireArray::append($item)
$thisAppend an item to the end of the WireArray
WireArray::filter($selector)
$thisFilter this WireArray to only include items that match the given selector (destructive)
WireArray::import($items)
$thisImport the given item(s) into this WireArray.
WireArray::insertAfter($item, $existingItem)
$thisInsert an item after an existing item
WireArray::insertBefore($item, $existingItem)
$thisInsert an item before an existing item
WireArray::not($selector)
$thisFilter this WireArray to only include items that DO NOT match the selector (destructive)
WireArray::pop()
Wire, mixed or nullPop an element off the end of the WireArray and return it
WireArray::prepend($item)
$thisPrepend an item to the beginning of the WireArray.
WireArray::push($item)
$thisPush an item to the end of the WireArray.
WireArray::remove($key)
$thisRemoves the given item or index from the WireArray (if it exists).
WireArray::removeAll()
$thisRemoves all items from the WireArray, leaving it blank
WireArray::removeItems($items)
$thisRemoves multiple identified items at once
WireArray::replace($itemA, $itemB)
$thisReplace one item with the other
WireArray::set($key, $value)
$thisSet an item by key in the WireArray.
WireArray::setArray($data)
$thisLike set() but accepts an array or WireArray to set multiple values at once
WireArray::shift()
Wire, mixed or nullShift an element off the beginning of the WireArray and return it
WireArray::shuffle()
$thisShuffle/randomize this WireArray
WireArray::sort($properties)
$thisSort this WireArray by the given properties.
WireArray::unshift($item)
$thisUnshift an element to the beginning of the WireArray (alias for prepend)

Info

NameReturnSummary 
WireArray::has($key)
boolDoes this WireArray have the given item, index, or match the given selector?
WireArray::isIdentical(WireArray $items)
boolIs the given WireArray identical to this one?
WireArray::isValidItem(mixed $item)
boolIs the given item valid for storange in this array?
WireArray::isValidKey($key)
boolIs the given item key valid for use in this array?
WireArray::iterable(mixed $item)
boolDetermines if the given item iterable as an array.

Output rendering

NameReturnSummary 
WireArray::each()
array, null, string or WireArrayPerform an action upon each item in the WireArray
WireArray::implode(string $delimiter)
stringCombine all elements into a delimiter-separated string containing the given property from each item

Other data storage

NameReturnSummary 
WireArray::data()
WireArray, mixed, array or nullStore or retrieve an extra data value in this WireArray
WireArray::removeData(string $key)
$thisRemove a property/value previously set with the WireArray::data() method.

Changes

NameReturnSummary 
WireArray::getItemsAdded()
array or WireReturn array of all items added to this WireArray (while change tracking is enabled)
WireArray::getItemsRemoved()
array or WireReturn array of all items removed from this WireArray (when change tracking is enabled)

Fun tools

NameReturnSummary 
WireArray::and($item)
WireArrayReturn a new copy of this WireArray with the given item(s) appended
WireArray::callUnknown(string $method, array $arguments)
null or mixedHandler for when an unknown/unhooked method call is executed
WireArray::each()
array, null, string or WireArrayPerform an action upon each item in the WireArray
WireArray::explode($property)
arrayReturn a plain array of the requested property from each item
WireArray::implode(string $delimiter)
stringCombine all elements into a delimiter-separated string containing the given property from each item

For hooks

These methods are only useful for hooking and should not be called directly.

NameReturnSummary 
WireArray::callUnknown(string $method, array $arguments)
null or mixedHandler for when an unknown/unhooked method call is executed

Common

NameReturnSummary 
WireArray::keys array All keys used in this WireArray
WireArray::setDuplicateChecking(bool $value)
(nothing)Set the current duplicate checking state
WireArray::values array All values used in this WireArray

Additional methods and properties

In addition to the methods and properties above, WireArray also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.84