WP_Upgrader::flatten_dirlist()protectedWP 4.9.0

Flattens the results of WP_Filesystem_Base::dirlist() for iterating over.

Method of the class: WP_Upgrader{}

No Hooks.

Return

Array. A flattened array of the $nested_files specified.

Usage

// protected - for code of main (parent) or child class
$result = $this->flatten_dirlist( $nested_files, $path );
$nested_files(array) (required)
Array of files as returned by WP_Filesystem_Base::dirlist().
$path(string)
Relative path to prepend to child nodes. Optional.
Default: ''

Changelog

Since 4.9.0 Introduced.

WP_Upgrader::flatten_dirlist() code WP 6.5.2

protected function flatten_dirlist( $nested_files, $path = '' ) {
	$files = array();

	foreach ( $nested_files as $name => $details ) {
		$files[ $path . $name ] = $details;

		// Append children recursively.
		if ( ! empty( $details['files'] ) ) {
			$children = $this->flatten_dirlist( $details['files'], $path . $name . '/' );

			// Merge keeping possible numeric keys, which array_merge() will reindex from 0..n.
			$files = $files + $children;
		}
	}

	return $files;
}