public static function arrayDropdown(array $raw, $partition, $key, $value)
    {
        $output = array();

        foreach (self::arrayPartition($raw, $partition) as $target => $data) {
            foreach ($data as $innerKey => $innerValue) {
                if (isset($innerValue[$key], $innerValue[$value])) {
                    $output[$target][$innerValue[$key]] = $innerValue[$value];
                }
            }
        }

        return $output;
    }