PHP:多维数组插入故障

PHP:多维数组插入故障,php,arrays,Php,Arrays,因此,我试图创建一个多维数组,该数组保存每个团队的开发人员成员ID 为了澄清,应该是这样的: $MultiDimensionalArray = array ( $teamArray[$teamID] = array ( [0] => '$memberID', [1] => '$memberID' ), $teamArray[$teamID] = array ( [0] => '$memberID',

因此,我试图创建一个多维数组,该数组保存每个团队的开发人员成员ID

为了澄清,应该是这样的:

$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):

到目前为止还不错,现在我想在teamID数组中添加开发人员的memberID。因此,我从一秒钟前开始向foreach循环中添加了这段额外的代码。使之成为:

foreach($teamIDarray as $teamID) {
    $developersMultiArray[$teamID] = $developersTeamIDArray;

    while($preparedStatement->fetch()) {
        $developersTeamIDArray[] = $developerID;
    }
}
在这一点上,我的阵法完全减速

完成分步输出:

为了再次澄清,该代码获取登录用户所属的所有团队,如“teamID数组”中所示。 之后,它将获得团队中指定为开发人员的成员。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) } } 

希望我把一切都说清楚。

假设从
while
循环中获取的每一行/结果都是
$developerID
和相应的
$teamID
解决方案是这样的

不需要创建三个单独的数组或
foreach
循环,一个简单的
while
循环就可以了

$developersMultiArray = [];
while($preparedStatement->fetch()){
    // $developerID corresponds to a particular $teamID
    $developersMultiArray[$teamID][] = $developerID;
}

// display $developersMultiArray array
var_dump($developersMultiArray);

假设从
while
循环中获取的每一行/结果都是
$developerID
和相应的
$teamID
解决方案是这样的

不需要创建三个单独的数组或
foreach
循环,一个简单的
while
循环就可以了

$developersMultiArray = [];
while($preparedStatement->fetch()){
    // $developerID corresponds to a particular $teamID
    $developersMultiArray[$teamID][] = $developerID;
}

// display $developersMultiArray array
var_dump($developersMultiArray);

哦,哇。。。这就成功了。非常感谢你!我从未见过$array[key][]=“addvalue”。这叫什么?@B.Cakir这是一个多维数组操作,您在
$array[key]
数组中追加值。你可以在这里找到更多的信息,哦,哇。。。这就成功了。非常感谢你!我从未见过$array[key][]=“addvalue”。这叫什么?@B.Cakir这是一个多维数组操作,您在
$array[key]
数组中追加值。你可以在这里找到更多的信息,