36 $flexFormArray = isset($flexFormArray[
'data']) ? $flexFormArray[
'data'] : array();
37 foreach (array_values($flexFormArray) as $languages) {
38 if (!is_array($languages[$languagePointer])) {
41 foreach ($languages[$languagePointer] as $valueKey => $valueDefinition) {
42 if (strpos($valueKey,
'.') === FALSE) {
43 $settings[$valueKey] = $this->
walkFlexFormNode($valueDefinition, $valuePointer);
45 $valueKeyParts = explode(
'.', $valueKey);
46 $currentNode = &$settings;
47 foreach ($valueKeyParts as $valueKeyPart) {
48 $currentNode = &$currentNode[$valueKeyPart];
50 if (is_array($valueDefinition)) {
51 if (array_key_exists($valuePointer, $valueDefinition)) {
52 $currentNode = $valueDefinition[$valuePointer];
57 $currentNode = $valueDefinition;
73 if (is_array($nodeArray)) {
75 foreach ($nodeArray as $nodeKey => $nodeValue) {
76 if ($nodeKey === $valuePointer) {
79 if (in_array($nodeKey, array(
'el',
'_arrayContainer'))) {
82 if ($nodeKey[0] ===
'_') {
85 if (strpos($nodeKey,
'.')) {
86 $nodeKeyParts = explode(
'.', $nodeKey);
87 $currentNode = &$return;
88 for ($i = 0; $i < count($nodeKeyParts) - 1; $i++) {
89 $currentNode = &$currentNode[$nodeKeyParts[$i]];
91 $newNode = array(next($nodeKeyParts) => $nodeValue);
93 } elseif (is_array($nodeValue)) {
94 if (array_key_exists($valuePointer, $nodeValue)) {
95 $return[$nodeKey] = $nodeValue[$valuePointer];
100 $return[$nodeKey] = $nodeValue;
static xml2array($string, $NSprefix='', $reportDocTag=FALSE)