Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.
Command::recursively_show_difference( $dictated, $current = null )
Recursively output the difference between “dictated” and “current”
Contents
Source Source
File: libraries/lifterlms-cli/src/Commands/Restful/Command.php
private function recursively_show_difference( $dictated, $current = null ) { $this->output_nesting_level++; if ( $this->is_assoc_array( $dictated ) ) { foreach ( $dictated as $key => $value ) { if ( $this->is_assoc_array( $value ) || is_array( $value ) ) { $new_current = isset( $current[ $key ] ) ? $current[ $key ] : null; if ( $new_current ) { $this->nested_line( $key . ': ' ); } else { $this->add_line( $key . ': ' ); } $this->recursively_show_difference( $value, $new_current ); } elseif ( is_string( $value ) ) { $pre = $key . ': '; if ( isset( $current[ $key ] ) && $current[ $key ] !== $value ) { $this->remove_line( $pre . $current[ $key ] ); $this->add_line( $pre . $value ); } elseif ( ! isset( $current[ $key ] ) ) { $this->add_line( $pre . $value ); } } } } elseif ( is_array( $dictated ) ) { foreach ( $dictated as $value ) { if ( ! $current || ! in_array( $value, $current ) ) { $this->add_line( '- ' . $value ); } } } elseif ( is_string( $value ) ) { $pre = $key . ': '; if ( isset( $current[ $key ] ) && $current[ $key ] !== $value ) { $this->remove_line( $pre . $current[ $key ] ); $this->add_line( $pre . $value ); } elseif ( ! isset( $current[ $key ] ) ) { $this->add_line( $pre . $value ); } else { $this->nested_line( $pre ); } } $this->output_nesting_level--; }
Expand full source code Collapse full source code View on GitHub