Impression de la matrice PHP en tant que chaîne, pour la méthode de la forme de Phalon PHP -> ISVALID ()

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

  •  21-12-2019
  •  | 
  •  

Question

J'ai un petit problème avec Phalon PHP et formes multidimensionnelles. J'ajoute des éléments à une forme phalcon comme celle-ci:

  $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);

Et dans la vue, cela se traduit par:

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

Qui est totalement fin et ma sortie attendue, mais cela semble être dû au fait que PHP convertit automatiquement cette syntaxe (langage [en-US] [Affichage]) à ce tableau:

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

La méthode Phalcon PHP Phalcon \ Forms \ formulaires ISVALID () ne peut pas l'affecter à l'élément de forme correct, lors de la transmission des données $ _Post, ma question est donc un moyen facile de convertir ce tableau à une matrice commeCeci:

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

Était-ce utile?

La solution

Juste itération avec pourcheach suffit?

$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);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top