我在PHP中有两个数组需要传递给JS脚本,PHP数组是locations
和rooms
,如下所示:
变量转储($个位置)
Array ( [0] => Array
( [id] => 1
[name] => "London" )
[1] => Array
( [id] => 2
[name] => "Manchester" )
)
变量转储($个房间)
Array ( [0] => Array
( [id] => 1
[locationId] => "1"
[name] => "Lon Room 1" )
[1] => Array
( [id] => 2
[locationId] => "1"
[name] => "Lon Room 2" )
[2] => Array
( [id] => 3
[locationId] => "1"
[name] => "Lon Room 3" )
[3] => Array
( [id] => 4
[locationId] => "2"
[name] => "Man Room 1" )
[4] => Array
( [id] => 5
[locationId] => "2"
[name] => "Man Room 2" )
)
我需要将房间数组合并到locations数组中,将房间分组到适当的位置下,这样我就可以向名为DailyPlot Scheduler的JS插件输出以下语法。
{ name: "London", id: "1", children:[
{ name : "Lon Room 1", id : "1" },
{ name : "Lon Room 2", id : "2" },
{ name : "Lon Room 3", id : "3" }
]
},
{ name: "Manchester", id: "2", children:[
{ name : "Man Room 1", id : "1" },
{ name : "Man Room 2", id : "2" }
]
}
我在这里和那里学习一些东西,作为我学徒生涯的一部分,但还没有好到足以让我自己把我的头包起来,哈哈,对不起,谢谢!
3条答案
按热度按时间5n0oy7gb1#
如果创建一个按位置id索引的数组,则可以使用索引为指定位置添加子项:
2j4z5cfb2#
我注意到在你的一条评论中你正在使用一个数据库,所以我决定继续添加一个答案。另一个选择是通过在查询中连接位置和房间来避免一开始就有两个数组。我对表/列的名称做了一些假设,但是这样的查询应该可以工作:
然后,在从结果中提取行时,可以使用位置ID作为键来构造数组。
shyt4zoc3#
您可以使用
locations
数组的所有id
创建一个数组,然后使用array_search
将每个rooms
数组直接添加到locations
数组: