チームごとに開発者のmemberIDを保持する多次元配列を作成しようとしています。明確にするためにPHP:多次元配列の挿入グリッチ
、それはこのように見えることになっている:
$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年代を追加したいです。だから私はこの余分なコードをちょうど1秒前から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) } }
私はすべてを明確にしました。別の3を作成する必要はありません、あなたは$developerID
と対応$teamID
、次のようになりますソリューションを取得している、
をそれぞれ取得した行に/あなたのwhile
ループに起因していることを想定し
ああwaww ...そのトリックをしました。どうもありがとうございます!私は$ array [key] [] = 'addvalue'を見たことがありません。これは何と呼ばれていますか? –
@ B.Cakirこれは、 '$ array [key]'配列に*値を追加する多次元配列演算です。詳細はこちら[http://php.net/manual/en/language.types.array.php](http://php.net/manual/en/language.types.array.php)]を参照してください。 ) –