WireArray::data() method

Store or retrieve an extra data value in this WireArray

The data() function is exactly the same thing that it is in jQuery: http://api.jquery.com/data/.


// set a data value named 'foo' to value 'bar'
$a->data('foo', 'bar');

// retrieve the previously set data value
$bar = $a->data('foo');

// get all previously set data
$all = $a->data(); 


// basic usage
$items = $wireArray->data();

// usage with all arguments
$items = $wireArray->data($key = null, $value = null);


key (optional)string, null, array, bool

Name of data property you want to get or set, or:

  • Omit to get all data properties.
  • Specify associative array of [property => value] to set multiple properties.
  • Specify associative array and boolean TRUE for $value argument to replace all data with the new array given in $key.
  • Specify regular array of property names to return multiple properties.
  • Specify boolean FALSE to unset property name specified in $value argument.
value (optional)mixed, null, bool

Value of data property you want to set. Omit when getting properties.

  • Specify boolean TRUE to replace all data with associative array of data given in $key argument.

Return value

WireArray mixed array null

Returns one of the following, depending on specified arguments:

  • mixed when getting a single property: whatever you set is what you will get back.
  • null if the property you are trying to get does not exist in the data.
  • $this reference to this WireArray if you were setting a value.
  • array of all data if you specified no arguments or requested multiple keys.

See Also

WireArray methods and properties

API reference based on ProcessWire core version 3.0.185

Twitter updates

  • ProcessWire 3.0.192 (dev branch) contains 11 issue fixes and 5 pull requests, over 20 commits— More
    7 January 2022
  • ProcessWire 3.0.191 core updates: updates to the installer and the profile exporter module— More
    24 December 2021
  • This week ProcessWire went on a diet, trimming the core size from 15.5 MB down to 7.5 MB by moving optional site profiles into their own GitHub repos— More
    17 December 2021

Latest news

  • ProcessWire Weekly #402
    In the 402nd issue of ProcessWire Weekly we'll check out ProcessWire 3.0.193, highlight recent ProcessWire projects and resources, and more. Read on!
    Weekly.pw / 22 January 2022
  • ProcessWire 3.0.190 core updates
    ProcessWire 3.0.190 has 15 commits relative to 3.0.189 and contains a mixture of issue resolutions and feature additions. This post covers them all, in addition to updates for the PageAutosave and ProFields Table modules.
    Blog / 3 December 2021
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH