wpseek.com
A WordPress-centric search engine for devs and theme authors
_wp_array_set is private and should not be used in themes or plugins directly.
_wp_array_set › WordPress Function
Since5.8.0
Deprecatedn/a
› _wp_array_set ( $input_array, $path, $value = null )
Access: |
|
Parameters: (3) |
|
Defined at: |
|
Codex: |
Sets an array in depth based on a path of keys.
It is the PHP equivalent of JavaScript'slodash.set()
and mirroring it may help other components
retain some symmetry between client and server implementations.
Example usage:
$input_array = array();
_wp_array_set( $input_array, array( 'a', 'b', 'c', 1 ) );
$input_array becomes:
array(
'a' => array(
'b' => array(
'c' => 1,
),
),
);Related Functions: _wp_array_get, wp_array_slice_assoc, wp_cache_set, wp_parse_str, wp_kses_array_lc
Source
function _wp_array_set( &$input_array, $path, $value = null ) { // Confirm $input_array is valid. if ( ! is_array( $input_array ) ) { return; } // Confirm $path is valid. if ( ! is_array( $path ) ) { return; } $path_length = count( $path ); if ( 0 === $path_length ) { return; } foreach ( $path as $path_element ) { if ( ! is_string( $path_element ) && ! is_integer( $path_element ) && ! is_null( $path_element ) ) { return; } } for ( $i = 0; $i < $path_length - 1; ++$i ) { $path_element = $path[ $i ]; if ( ! array_key_exists( $path_element, $input_array ) || ! is_array( $input_array[ $path_element ] ) ) { $input_array[ $path_element ] = array(); } $input_array = &$input_array[ $path_element ]; } $input_array[ $path[ $i ] ] = $value; }