<?php


class Solution
{
    const letters = [
        2 => ['a','b','c'],
        3 => ['d','e','f'],
        4 => ['g','h','i'],
        5 => ['j','k','l'],
        6 => ['m','n','o'],
        7 => ['p','q','r','s'],
        8 => ['t','u','v'],
        9 => ['w','x','y','z']
    ];

    /**
     * @param mixed $digits
     * @access public
     * @return array
     */
    public static function letterCombinations($digits): array
    {
        if ($digits === '') {
            return [];
        }

        $lookupResult = [];
        $x = 0;
        while (count($lookupResult) === 0) {
            $lookupResult = self::letters[$digits[$x]] ?? [];
            $x++;
        }

        for ($i = 1; $i < strlen($digits); $i++) {
            $temp = [];

            foreach (self::letters[$digits[$i]] as $char) {
                foreach ($lookupResult as $r) {
                    $temp[] = $r . $char;
                }
            }

            $lookupResult = $temp;
        }
        return $lookupResult;
    }

}