Imprimir la matriz PHP como cadena, para el método Form-> IsValid () de Phalcon PHP

StackOverflow https://stackoverflow.com//questions/25055131

  •  21-12-2019
  •  | 
  •  

Pregunta

Tengo un pequeño problema con Falcon PHP y formas multidimensionales. Estoy agregando elementos a una forma de Phalcon como esta:

  $display = new Text('language[en-US][display]');
  $display->setLabel($t->_('Display'));
  $display->addValidator(new PresenceOf(array(
    'message' => 'The display field is required'
  )));
  $this->add($display);

y en la vista esto los resultados a:

  <input type="text" name="language[en-US][display]" value="some value">

que está totalmente bien y mi producción esperada, pero parece que se debe al hecho de que PHP convierte automáticamente esta sintaxis (IDIOMA [EN-US] [PANTALLA]) a esta matriz:

   array(
     'language' => array(
        'en-US' => array(
           'display' => 'some value'
        )
     )
   )    

El método FALCON PHP PHALCON \ FORMS \ FORM METHONAL () no puede asignarlo al elemento de formulario correcto, al pasarla los datos de $ _post, por lo que mi pregunta es, es una forma fácil de convertir esa matriz a una matriz como comoesto:

  array(
    'language[en-US][display]' => 'some value'
  )

¿Fue útil?

Solución

¡Solo iterando con foreach es suficiente?

$array =  array(
     'language' => array(
        'en-US' => array(
           'display' => 'some value'
        )
     )
   );

$newkey = key($array);
foreach($array[$newkey] as $key=>$val) {
        $newkey .= "[".$key."]";
        foreach ($val as $subkey=>$subval) {
                $newarray[$newkey. "[".$subkey."]"] = $subval;
        }

}

var_dump($newarray);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top