File "ArrayConverter.php"

Full Path: /home/warrior1/public_html/wp-content/plugins/mailpoet/vendor-prefixed/symfony/translation/Util/ArrayConverter.php
File size: 1.07 KB
MIME-type: text/x-php
Charset: utf-8

<?php
namespace MailPoetVendor\Symfony\Component\Translation\Util;
if (!defined('ABSPATH')) exit;
class ArrayConverter
{
 public static function expandToTree(array $messages)
 {
 $tree = [];
 foreach ($messages as $id => $value) {
 $referenceToElement =& self::getElementByPath($tree, \explode('.', $id));
 $referenceToElement = $value;
 unset($referenceToElement);
 }
 return $tree;
 }
 private static function &getElementByPath(array &$tree, array $parts)
 {
 $elem =& $tree;
 $parentOfElem = null;
 foreach ($parts as $i => $part) {
 if (isset($elem[$part]) && \is_string($elem[$part])) {
 $elem =& $elem[\implode('.', \array_slice($parts, $i))];
 break;
 }
 $parentOfElem =& $elem;
 $elem =& $elem[$part];
 }
 if ($elem && \is_array($elem) && $parentOfElem) {
 self::cancelExpand($parentOfElem, $part, $elem);
 }
 return $elem;
 }
 private static function cancelExpand(array &$tree, $prefix, array $node)
 {
 $prefix .= '.';
 foreach ($node as $id => $value) {
 if (\is_string($value)) {
 $tree[$prefix . $id] = $value;
 } else {
 self::cancelExpand($tree, $prefix . $id, $value);
 }
 }
 }
}