Imprimir la matriz PHP como cadena, para el método Form-> IsValid () de Phalcon PHP
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'
)
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