Rellenar con objeto de menú multidimensional
-
10-10-2019 - |
Pregunta
Me pregunto si hay una manera más efectiva para poner un menú en una matriz o cualquier otro tipo de datos. Con php me gustaría hacer algo como esto:
$menu[1] = "home";
$menu[2] = "news";
$menu[3]["item"] = "products";
$menu[3]["subMenu"][1] = "jackets";
$menu[3]["subMenu"][2] = "T-shirts";
$menu[4] = "contact";
Sin embargo no tengo idea de cómo se podría hacer esto en ColdFusion. Quiero agarrar estos datos de la base de datos y la empujo hacia un objeto, esto permitirá a mí para generar el código HTML de la matriz.
Solución
En realidad es muy similar. Este ColdFusion 8 (o superior) presume para array ([]
) y struct ({}
) literales:
<cfset menu = [] /> <!--- Create initial array --->
<cfset menu[1] = "home" />
<cfset menu[2] = "news" />
<cfset menu[3] = {} /> <!--- Create structure --->
<cfset menu[3]["item"] = "products" /> <!--- Address structure by key --->
<cfset menu[3]["subMenu"] = [] />
<cfset menu[3]["subMenu"][1] = "jackets" />
<cfset menu[3]["subMenu"][2] = "T-shirts" />
<cfset menu[4] = "contact" />
<cfdump var="#menu#" /> <!--- Output --->
Espero que ayude!
Otros consejos
Para tomar la respuesta de Ciaran un paso más allá, puede hacerlo por completo con objetos literales en la FQ 9:
<cfset menu = ["home",
"news",
{"item"="products",
"subMenu"= ["jackets",
"T-shirts"]},
"contact"]>
<cfdump var="#menu#" /> <!--- Output --->
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow