所以我正在尝试创建一个多维数组,其中包含每个团队的开发人员的memberID。
澄清一下,它应该是这样的:
$MultiDimensionalArray = array (
$teamArray[$teamID] = array (
[0] => '$memberID',
[1] => '$memberID'
),
$teamArray[$teamID] = array (
[0] => '$memberID',
[1] => '$memberID'
)
)
问题是,当插入memberID时,会出现问题。
这是我使用的代码的第一部分。
$teamIDarray = [];
$developersMultiArray = [];
$developersTeamIDArray = [];
while($preparedStatement->fetch()) {
$teamIDarray[] = $teamID;
}
foreach($teamIDarray as $teamID) {
$developersMultiArray[$teamID] = $developersTeamIDArray;
}
现在数组的输出(键是teamID'):
developersMulti array(5) { [175]=> array(0) { } [176]=> array(0) { } [177]=> array(0) { } [178]=> array(0) { } [179]=> array(0) { } }
到目前为止很棒,现在我想在teamID数组中添加开发人员的memberID。所以我从一秒钟前将这个额外的代码添加到foreach循环中。成功:
foreach($teamIDarray as $teamID) {
$developersMultiArray[$teamID] = $developersTeamIDArray;
while($preparedStatement->fetch()) {
$developersTeamIDArray[] = $developerID;
}
}
在这一点上,我的阵列完全延迟了。
完成一步一步的输出:
再次澄清一下,代码会获取登录用户所在的所有团队,如#teambe数组'所示。 之后,它会获得团队中指定为开发人员的成员。 175和176在他们的团队中没有开发人员,所以不会在阵列中。
teamID array(5) { [0]=> int(175) [1]=> int(176) [2]=> int(177) [3]=> int(178) [4]=> int(179) }
teamID: 177
memberID: 9
//should add memberID 9 to array with 177 as key, but doesn't for some reason.
developersMulti array(3) { [175]=> array(0) { } [176]=> array(0) { } [177]=> array(0) { } }
teamID: 178
memberID: 9
//for some reason, this goes correct
developersMulti array(4) { [175]=> array(0) { } [176]=> array(0) { } [177]=> array(0) { } [178]=> array(1) { [0]=> int(9) } }
teamID: 178
memberID: 10
//didn't add memberID 10 to team 178
developersMulti array(4) { [175]=> array(0) { } [176]=> array(0) { } [177]=> array(0) { } [178]=> array(1) { [0]=> int(9) } }
teamID: 179
memberID: 9
//adds two unknown user, probably user 9 and 10 that got skipped in the previous iterations
developersMulti array(5) { [175]=> array(0) { } [176]=> array(0) { } [177]=> array(0) { } [178]=> array(1) { [0]=> int(9) } [179]=> array(3) { [0]=> int(9) [1]=> int(9) [2]=> int(10) } }
teamID: 179
memberID: 10
//got skipped again
developersMulti array(5) { [175]=> array(0) { } [176]=> array(0) { } [177]=> array(0) { } [178]=> array(1) { [0]=> int(9) } [179]=> array(3) { [0]=> int(9) [1]=> int(9) [2]=> int(10) } }
teamID: 179
memberID: 11
//skipped again
developersMulti array(5) { [175]=> array(0) { } [176]=> array(0) { } [177]=> array(0) { } [178]=> array(1) { [0]=> int(9) } [179]=> array(3) { [0]=> int(9) [1]=> int(9) [2]=> int(10) } }
希望我把事情弄清楚。
答案 0 :(得分:0)
假设对于while
循环中每个获取的行/结果,您获得了$developerID
和相应的$teamID
,解决方案强>会是这样的,
没有必要创建三个单独的数组或foreach
循环,一个简单的while
循环就可以了。
$developersMultiArray = [];
while($preparedStatement->fetch()){
// $developerID corresponds to a particular $teamID
$developersMultiArray[$teamID][] = $developerID;
}
// display $developersMultiArray array
var_dump($developersMultiArray);