RobBrazier/Laravel_Piwik

View on GitHub
src/RobBrazier/Piwik/Traits/ArrayAccessTrait.php

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
<?php

namespace RobBrazier\Piwik\Traits;

trait ArrayAccessTrait
{

    /**
     * @param array $haystack
     *
     * @param string needle
     * @return mixed
     */
    private function safeGetArrayEntry(array $haystack, $needle, $default = null)
    {
        if (in_array($needle, array_keys($haystack))) {
            return $haystack[$needle];
        }
        return $default;
    }

    /**
     * @param array $array
     * @param string $prepend
     * @return array
     */
    private function flattenArrayByDot(array $array, string $prepend = ''): array
    {
        $results = [];

        foreach ($array as $key => $value) {
            if (is_array($value) && ! empty($value)) {
                $results = array_merge($results, $this->flattenArrayByDot($value, $prepend.$key.'.'));
            } else {
                $results[$prepend.$key] = $value;
            }
        }

        return $results;
    }

}