如何处理非固定结构数组并生成指定格式赛事赔率表格
处理赛事赔率数据并转换为指定表格格式
需求说明
需要遍历赛事数据数组,将其转换为包含teams、mr1、mrx、mr2字段的表格,缺失的赔率用-填充。数据规则:
[N]对应赛事结果:1=主队胜(对应mr1),2=平局(对应mrx),3=客队胜(对应mr2)[O]为对应结果的赔率
模拟原始数据
// 模拟输入的赛事数据数组 $matchData = [ [ 'teams' => '巴塞罗那 vs 皇马', 'odds' => [ ['N' => 1, 'O' => '1.85'], ['N' => 2, 'O' => '3.40'], ['N' => 3, 'O' => '4.20'] ] ], [ 'teams' => '尤文图斯 vs 萨尔茨堡', 'odds' => [ ['N' => 3, 'O' => '2.10'] ] ] ];
处理逻辑(PHP示例)
通过foreach双层遍历,先初始化所有赔率字段为-,再根据[N]的值匹配对应字段赋值:
$processedData = []; foreach ($matchData as $match) { // 初始化行数据,缺失赔率默认填充'-' $row = [ 'teams' => $match['teams'], 'mr1' => '-', 'mrx' => '-', 'mr2' => '-' ]; // 遍历当前赛事的赔率列表,匹配赋值 foreach ($match['odds'] as $odd) { match ($odd['N']) { 1 => $row['mr1'] = $odd['O'], 2 => $row['mrx'] = $odd['O'], 3 => $row['mr2'] = $odd['O'] }; } $processedData[] = $row; }
最终转换结果
| teams | mr1 | mrx | mr2 |
|---|---|---|---|
| 巴塞罗那 vs 皇马 | 1.85 | 3.40 | 4.20 |
| 尤文图斯 vs 萨尔茨堡 | - | - | 2.10 |
内容的提问来源于stack exchange,提问作者user29401486
相关产品推荐
相关产品推荐

