Buckets:
| declare(strict_types=1); | |
| /* | |
| * This file is a part of dflydev/dot-access-data. | |
| * | |
| * (c) Dragonfly Development Inc. | |
| * | |
| * For the full copyright and license information, please view the LICENSE | |
| * file that was distributed with this source code. | |
| */ | |
| namespace Dflydev\DotAccessData; | |
| class Util | |
| { | |
| /** | |
| * Test if array is an associative array | |
| * | |
| * Note that this function will return true if an array is empty. Meaning | |
| * empty arrays will be treated as if they are associative arrays. | |
| * | |
| * @param array<mixed> $arr | |
| * | |
| * @return bool | |
| * | |
| * @psalm-pure | |
| */ | |
| public static function isAssoc(array $arr): bool | |
| { | |
| return !count($arr) || count(array_filter(array_keys($arr), 'is_string')) == count($arr); | |
| } | |
| /** | |
| * Merge contents from one associtative array to another | |
| * | |
| * @param mixed $to | |
| * @param mixed $from | |
| * @param DataInterface::PRESERVE|DataInterface::REPLACE|DataInterface::MERGE $mode | |
| * | |
| * @return mixed | |
| * | |
| * @psalm-pure | |
| */ | |
| public static function mergeAssocArray($to, $from, int $mode = DataInterface::REPLACE) | |
| { | |
| if ($mode === DataInterface::MERGE && self::isList($to) && self::isList($from)) { | |
| return array_merge($to, $from); | |
| } | |
| if (is_array($from) && is_array($to)) { | |
| foreach ($from as $k => $v) { | |
| if (!isset($to[$k])) { | |
| $to[$k] = $v; | |
| } else { | |
| $to[$k] = self::mergeAssocArray($to[$k], $v, $mode); | |
| } | |
| } | |
| return $to; | |
| } | |
| return $mode === DataInterface::PRESERVE ? $to : $from; | |
| } | |
| /** | |
| * @param mixed $value | |
| * | |
| * @return bool | |
| * | |
| * @psalm-pure | |
| */ | |
| private static function isList($value): bool | |
| { | |
| return is_array($value) && array_values($value) === $value; | |
| } | |
| } | |
Xet Storage Details
- Size:
- 1.92 kB
- Xet hash:
- 1807f14435d867e10fc5752161a35230a6c01c05bf7e87c8671d74b9ef9e9869
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.