# _wp_array_set()

URL: https://chugunov.pro/api-wordpress/functions/_wp_array_set/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 5.8.0.

## Сигнатура

```php
_wp_array_set( array $input_array, array $path, mixed $value = null )
```

## Описание

Это PHP-эквивалент lodash.set() из JavaScript, и его воспроизведение может помочь другим компонентам сохранять некоторую симметрию между клиентской и серверной реализациями.
Пример использования:
$input_array = array();
_wp_array_set( $input_array, array( 'a', 'b', 'c', 1 ) );

$input_array становится:
array(
'a' => array(
'b' => array(
'c' => 1,
),
),
);

## Параметры

- `$input_array` `array` — обязательный. Массив, который нужно изменить, чтобы включить определённое значение по заданному пути.
- `$path` `array` — обязательный. Массив ключей, описывающий путь, который нужно изменить.
- `$value` `mixed` — необязательный, по умолчанию `null`. Значение, которое будет установлено.

## Исходный код

Файл: `wp-includes/functions.php:5166`

```php
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;
}
```

## История изменений

- 5.8.0 — Introduced.

## Связанные

Используется в: `WP_Theme_JSON::preserve_valid_typed_settings`, `WP_Theme_JSON::unwrap_shared_block_style_variations`, `WP_Theme_JSON_Resolver::inject_variations_from_block_style_variation_files`, `WP_Theme_JSON_Resolver::inject_variations_from_block_styles_registry`, `WP_Theme_JSON_Resolver::resolve_theme_file_uris`, `WP_Duotone::migrate_experimental_duotone_support_flag`, `WP_Theme_JSON::remove_indirect_properties`, `WP_Theme_JSON::set_spacing_sizes`, `WP_Theme_JSON::get_data`, `WP_Theme_JSON_Schema::rename_settings`, `WP_Theme_JSON::get_default_slugs`, `WP_Theme_JSON::remove_insecure_properties`, `WP_Theme_JSON::remove_insecure_settings`, `WP_Theme_JSON::remove_insecure_styles`, `WP_Theme_JSON::do_opt_in_into_settings`, `WP_Theme_JSON::merge`, `WP_Theme_JSON::__construct`, [`wp_migrate_old_typography_shape`](https://chugunov.pro/api-wordpress/functions/wp_migrate_old_typography_shape/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/_wp_array_set/
