first
This commit is contained in:
52
wp-content/plugins/wp-smushit/core/class-array-utils.php
Normal file
52
wp-content/plugins/wp-smushit/core/class-array-utils.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Smush\Core;
|
||||
|
||||
class Array_Utils {
|
||||
public function array_hash( $array, $keys = array() ) {
|
||||
$hash = 0;
|
||||
if ( is_array( $array ) ) {
|
||||
foreach ( $array as $key => $value ) {
|
||||
if ( is_array( $value ) ) {
|
||||
$value_hash = $this->array_hash(
|
||||
$value,
|
||||
array_merge( $keys, array( $key ) )
|
||||
);
|
||||
} else {
|
||||
$prefix = join( '~', $keys );
|
||||
$value_hash = crc32( $prefix . $value );
|
||||
}
|
||||
|
||||
$hash += $value_hash;
|
||||
}
|
||||
}
|
||||
|
||||
return $hash;
|
||||
}
|
||||
|
||||
public function get_array_value( $array, $key ) {
|
||||
return isset( $array[ $key ] ) ? $array[ $key ] : null;
|
||||
}
|
||||
|
||||
public function ensure_array( $array ) {
|
||||
return empty( $array ) || ! is_array( $array )
|
||||
? array()
|
||||
: $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* WARNING: This trick works only for arrays in which all the values are valid keys.
|
||||
* @see https://stackoverflow.com/a/8321701
|
||||
*
|
||||
* @param $array scalar[]
|
||||
*
|
||||
* @return array Unique array
|
||||
*/
|
||||
public function fast_array_unique( $array ) {
|
||||
if ( ! is_array( $array ) ) {
|
||||
return array();
|
||||
}
|
||||
|
||||
return array_keys( array_flip( $array ) );
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user