我有一個括號資料,它接受以下形式的資料
[// Round 1 bracket
[// row 1
{
"name" : 'test name',
'id' : 1
}, {
"name" : 'test last',
'id' : 2
}
], [ row 2
{
"name" : 'test name',
'id' : 1
}, {
"name" : 'test last',
'id' : 2
}
]
], [// Round 2 Bracket
[ //row 1
{
"name" : 'test name',
'id' : 1
}, {
"name" : 'test last',
'id' : 2
}
]
]
但主要問題是在 json 上我必須創建多維陣列,并且資料來自 mysqli,它是 1 個表
| player_id | player_name | participant_id | participant_name | round |
| ---------- | ----------- | -------------- | ---------------- | ----- |
| 1 | Mark Alan | 3 | Steve | 1 |
| 2 | John Doe | 4 | Sean Henshaw | 1 |
| 1 | Mark Alan | 2 | John Doe | 2 |
那么我如何實作這一點我如何使用 foreach 回圈以這種格式制作我無法使用這種格式設定資料這里是我創建的示例 php 代碼它可以輸出 json 資料但是在回圈時通過資料庫查詢如何做我以陣列形式排列資料以設定括號
$data = array(
array(
array(
'player_id' => 1,
'player_name' => 'Mark Alan',
'round' => 1
), array(
'participant_id' => 3,
'participant_name' => 'Steve',
'round' => 1
)
), array(
array(
'player_id' => 2,
'player_name' => 'John Doe',
'round' => 1
), array(
'participant_id' => 4,
'participant_name' => 'Sean Henshaw',
'round' => 1
)
)
), array(
array(
array(
'player_id' => 1,
'player_name' => 'Mark Alan',
'round' => 2
), array(
'participant_id' => 2,
'participant_name' => 'John Doe',
'round' => 2
)
)
);
所以上面是我自己放置的輸出 nwo 通過運行一個回圈從單個回圈中的資料庫捕獲資料我如何制作上面的格式化資料我使用下面給定的代碼但是當它是下一輪時應該創建一個新陣列然后是第 3 輪,依此類推
$bracket = array();
foreach($data as $key => $dt) {
$bracket[] = array(
array(
'name' => $dt['player_name'],
'id' => $dt['player_id'],
),array(
'name' => $dt['participant_id'],
'id' => $dt['participant_name'],
)
);
}
上面的代碼列印出正確的資料,但我無法分開輪次
[
[
{"name":"Mark Alan","id":1},
{"name":3,"id":"Steve"}
],
[
{"name":"John Doe","id":2},
{"name":4,"id":"Sean Henshaw"}
],
[
{"name":"Mark Alan","id":1},
{"name":2,"id":"John Doe"}
]
]
uj5u.com熱心網友回復:
您應該將資料庫結果映射到新陣列:
$data = [];
while ($row = mysqli_fetch_array($stmt, MYSQLI_ASSOC)) {
$data[$row['round']] ??= [];
$data[$row['round']][] = [
[
'name' => $row['player_name'],
'id' => $row['player_id'],
],
[
'name' => $row['participant_name'],
'id' => $row['participant_id'],
],
];
}
$dataJson = json_encode($data);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/490693.html
