You are here

private function ArrayLoader::flatten in Plug 7

Flattens an nested array of translations.

The scheme used is: 'key' => array('key2' => array('key3' => 'value')) Becomes: 'key.key2.key3' => 'value'

This function takes an array by reference and will modify it

Parameters

array &$messages The array that will be flattened:

array $subnode Current subnode being parsed, used internally for recursive calls:

string $path Current path being parsed, used internally for recursive calls:

1 call to ArrayLoader::flatten()
ArrayLoader::load in lib/Symfony/translation/Loader/ArrayLoader.php
@api

File

lib/Symfony/translation/Loader/ArrayLoader.php, line 53

Class

ArrayLoader
ArrayLoader loads translations from a PHP array.

Namespace

Symfony\Component\Translation\Loader

Code

private function flatten(array &$messages, array $subnode = null, $path = null) {
  if (null === $subnode) {
    $subnode =& $messages;
  }
  foreach ($subnode as $key => $value) {
    if (is_array($value)) {
      $nodePath = $path ? $path . '.' . $key : $key;
      $this
        ->flatten($messages, $value, $nodePath);
      if (null === $path) {
        unset($messages[$key]);
      }
    }
    elseif (null !== $path) {
      $messages[$path . '.' . $key] = $value;
    }
  }
}