WP_CLI
Configurator::extract_assoc
Splits positional args from associative args.
Method of the class: Configurator{}
No Hooks.
Returns
Array{0:. array<string>, 1: array<array{0: string, 1: string|bool}>, 2: array<array{0: string, 1: string|bool}>, 3: array<array{0: string, 1: string|bool}>}
Usage
$result = Configurator::extract_assoc( $arguments );
- $arguments(array
) (required) - .
Configurator::extract_assoc() Configurator::extract assoc code WP-CLI 2.13.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 ];
}