mirror of
https://github.com/getgrav/grav.git
synced 2026-07-10 13:53:46 +02:00
Added some Util array functions
This commit is contained in:
@@ -267,6 +267,60 @@ abstract class Utils
|
||||
return $array1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array with the differences between $array1 and $array2
|
||||
*
|
||||
* @param array $aArray1
|
||||
* @param array $aArray2
|
||||
* @return array
|
||||
*/
|
||||
public static function arrayDiffMultidimensional($array1, $array2)
|
||||
{
|
||||
$result = array();
|
||||
foreach ($array1 as $key => $value) {
|
||||
if (!is_array($array2) || !array_key_exists($key, $array2)) {
|
||||
$result[$key] = $value;
|
||||
continue;
|
||||
}
|
||||
if (is_array($value)) {
|
||||
$recursiveArrayDiff = static::ArrayDiffMultidimensional($value, $array2[$key]);
|
||||
if (count($recursiveArrayDiff)) {
|
||||
$result[$key] = $recursiveArrayDiff;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if ($value != $array2[$key]) {
|
||||
$result[$key] = $value;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Array combine but supports different array lengths
|
||||
*
|
||||
* @param $arr1
|
||||
* @param $arr2
|
||||
* @return array|false
|
||||
*/
|
||||
public static function arrayCombine($arr1, $arr2)
|
||||
{
|
||||
$count = min(count($arr1), count($arr2));
|
||||
return array_combine(array_slice($arr1, 0, $count), array_slice($arr2, 0, $count));
|
||||
}
|
||||
|
||||
/**
|
||||
* Array is associative or not
|
||||
*
|
||||
* @param $arr
|
||||
* @return bool
|
||||
*/
|
||||
public static function arrayIsAssociative($arr)
|
||||
{
|
||||
if (array() === $arr) return false;
|
||||
return array_keys($arr) !== range(0, count($arr) - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the Grav date formats allowed
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user