function group_children(data){ var categories = ["phone","computer"]; var countries = ["US","Brazil","Italy"]; var object = {name:"categories",children:[]}; for(var c =0; c < categories.length;c++){ object.children.push({"name":categories[c],children:[]});
for(var con = 0;con < countries.length;con++){ object.children[c].children.push({"name":countries[con],"children":[]}); } }
for(var i = 0;i < data.length;i++){ var row = data[i]; for(var c =0; c < categories.length;c++){ for(var con = 0;con < countries.length;con++){ var cat_key = categories[c], country_key = countries[con]; if(row[cat_key] > 0){ if(object.children[c].name == cat_key && row.country == country_key){ object.children[c].children[con].children.push({brand:row["brand"],size:row[cat_key]}); } } } } } return object; } [/code]
Возможно ли, во время итерации не толкать страну в массив бренда или компьютера , если массив детей пусто? < /p>
Я работаю с системой разрешений, в которой мне нужно преобразовать одноуровневый массив (разделенный подчеркиванием) в многомерный массив. Любая помощь с функцией, которая это исправляет?
Как преобразовать 2D-массив в глубоко вложенный многомерный массив, в котором младший подмассив определяется условно?
Array
(
=> stdClass Object
(
=> 2013
=> AK
=> Medicaid
=> 56324
=> 56324
=> 56324
=>
=>
=>
=>
=>
)
Скажем, у меня есть строка как таковая; a.b.c|ab.b.d|a.b.e|f|f.g|f.h|i, я хочу создать новый массив (или объект) следующим образом
A > B > C, D, E
F > G, H
I
Когда > является вложенным массивом, является элементом родительского массива.
Они...