WP_CLI

Configurator::extract_assoc()public staticWP-CLI 1.0

Splits positional args from associative args.

Method of the class: Configurator{}

No Hooks.

Return

Array(Array).

Usage

$result = Configurator::extract_assoc( $arguments );
$arguments(array) (required)
-

Configurator::extract_assoc() code WP-CLI 2.8.0-alpha

public static function extract_assoc( $arguments ) {
	$positional_args = [];
	$assoc_args      = [];
	$global_assoc    = [];
	$local_assoc     = [];

	foreach ( $arguments as $arg ) {
		$positional = null;
		$assoc_arg  = null;

		if ( preg_match( '|^--no-([^=]+)$|', $arg, $matches ) ) {
			$assoc_arg = [ $matches[1], false ];
		} elseif ( preg_match( '|^--([^=]+)$|', $arg, $matches ) ) {
			$assoc_arg = [ $matches[1], true ];
		} elseif ( preg_match( '|^--([^=]+)=(.*)|s', $arg, $matches ) ) {
			$assoc_arg = [ $matches[1], $matches[2] ];
		} else {
			$positional = $arg;
		}

		if ( ! is_null( $assoc_arg ) ) {
			$assoc_args[] = $assoc_arg;
			if ( count( $positional_args ) ) {
				$local_assoc[] = $assoc_arg;
			} else {
				$global_assoc[] = $assoc_arg;
			}
		} elseif ( ! is_null( $positional ) ) {
			$positional_args[] = $positional;
		}
	}

	return [ $positional_args, $assoc_args, $global_assoc, $local_assoc ];
}