php - 如何组合成单个变量数组
问题描述
在我的 php 脚本中,我有这个$array
变量。
$array = array('moduleID' => $row1['ModuleID'] , 'module' => $row1['moduleName']);
$array['items'][] = array('groupID' => $row2['GroupID'],'groupname' =>$row2['groupName'] ,'items' => $progName);
知道如何将两个数组组合成一个变量吗?(不使用array_merge
)所以它可以产生这样的结果。
[
{
moduleID: "LA1",
module: "Accounting",
items: [
{
groupID: "LA6",
groupname: "COA Management",
items: [
{
programID: "LA12",
programName: "Ledger Management"
},
{
programID: "LA24",
programName: "Group Management"
},
{
programID: "LA26",
programName: "Bank Accounts"
}
]
}
]
},
........
]
我尝试这样做,但[ ]
首先它丢失了items
$array = array('moduleID' => $row1['ModuleID'] , 'module' => $row1['moduleName'], 'items' => ['groupID' => $row2['GroupID'],'groupname' =>$row2['groupName'] ,'items' => $progName]);
解决方案
在构建这三个数组的层时,您必须先构建内部数组。以下是适用于您的案例的示例代码:
<?php
$array = array();
$modules = array();
/* logic to get array of modules goes here */
$modules = array(
array('ModuleID'=>'LA1', 'moduleName'=>'Accounting'),
array('ModuleID'=>'LA11', 'moduleName'=>'Development'),
);
foreach ($modules as $row1) {
$groups = array();
/* logic to get array of groups for $row1['ModuleID'] goes here */
$groups = array(
array('GroupID'=>'LA6', 'groupName'=>'COA Management'),
array('GroupID'=>'LA66', 'groupName'=>'COA Management Part 2'),
);
$groupItems = array();
foreach ($groups as $row2) {
$programItems = array();
/* logic to get array of programs for $row2['GroupID'] goes here */
$programItems = array(
array('programID'=>'LA12', 'programName'=>'Ledger Management'),
array('programID'=>'LA24', 'programName'=>'Group Management'),
array('programID'=>'LA26', 'programName'=>'Bank Accounts'),
);
$groupItems[] = array('groupID'=>$row2['GroupID'], 'groupname'=>$row2['groupName'], 'items'=>$programItems);
}
$array[] = array('moduleID' => $row1['ModuleID'] , 'module' => $row1['moduleName'], 'items'=>$groupItems);
}
echo '<pre>'. json_encode($array, JSON_PRETTY_PRINT) . '</pre>'; exit;
?>
推荐阅读
- spring-boot - Spring Boot Cucumber Java 8 测试 ApplicationOnReady 事件
- git - 设置对 Github 的多个 SSH 密钥访问
- typescript - 打字稿错误?函数在定义为接受 A 和 B 类型的联合时接受缺少道具的对象,其中 B 扩展了 A
- java - 如何编码娘家姓
- javascript - 如何将 flex 行中的最后一个 Material UI 项目向右对齐?
- selenium - 测试用例 XRay 与 Jira 的映射不正确
- r - 在 R 中,如何识别在我的逆距离矩阵中包含 INFINITE 值的特定单元格?
- google-scholar - 如何使我的 Google Scholar 帐户可搜索?
- regex - 正则表达式如何匹配缩进块
- node.js - node-ffi STATUS_INVALID_PARAMETER Windows