【问题标题】:Create dynamic table with multi dimensional array data?用多维数组数据创建动态表?
【发布时间】:2016-04-21 21:11:45
【问题描述】:

各位专家,我是 laravel 和 php 的新手。我有一个多维数组,我想用这个数组数据创建一个动态表,它的最大计数将是 10 作为新手,我无法达到完美的结果。我的数组如下:

数组:4 [▼
0 => 数组:2 [▼
0 => {#404 ▼
+“id”:290
+“金额”:“8500.00”
}
1 => {#403 ▼
+“id”:399
+“金额”:“8500.00”
}
]
1 => 数组:4 [▼
0 => {#402 ▼
+“id”:107
+“金额”:“6590.00”
}
1 => {#401 ▼
+“id”:355
+“金额”:“6590.00”
}
2 => {#400 ▼
+“id”:698
+“金额”:“6590.00”
}
3 => {#399 ▼
+“id”:734
+“金额”:“6590.00”
}
]
2 => 数组:1 [▼
0 => {#108 ▼
+"id": 21
+“金额”:“3240.00”
}
]
3 => 数组:2 [▼
0 => {#397 ▼
+"id": 27
+“金额”:“3030.00”
}
1 => {#396 ▼
+"id": 50
+“金额”:“3030.00”
}
]
]

有了这个数组,我想创建一个如下表:

序列号       ID     
金额
1       290 8500
1       399 8500

2      107 6590
2       355 6590
2       698 6590
2       734 6590

3       108 3240

4       27       3030
4       50       3030

我正在 laravel 中尝试这个:

   $flag = 0;

   $tableDesign = '';

  for($i=0;$i<count($data);$i++) {
  $tableDesign .="<tr><td>".$flag++."</td><td>".$data[$i][0]."</td>  <td>".$data[$i][1]."</td></tr>";
  if($flag == 10)
  { return;}

  }

提前致谢。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以在表格中显示之前重新排列您的数组,如下所示:

    $newData = array();
    $flag = 1;
    foreach($data as $key => $elements) {
    
        if($flag > 10) {
            break;
        }
    
        foreach($elements as $element) {
    
            $newDataElement = array(
                'serial' => $key + 1,
                'id' => $element['id'],
                'amount' => $element['amount']
            );
    
            array_push($newData, $newDataElement);
        }
    
        $flag++;
    }
    

    那么你就可以简单的显示了:

    <?php foreach($newData as $element): ?>
    <tr>
        <td><?php print $element['serial']?></td>
        <td><?php print $element['id']?></td>
        <td><?php print $element['amount']?></td>
    </tr>
    <?php endforeach; ?>
    

    【讨论】:

    • 谢谢@aeonsleo 这里是串行的问题。您只取前十名,但所有类似的数据都将计为一个(1(se)290(id)8500(amount)1(se)399(id)8500(amount)
    • 取出$flag++到外层foreach循环。希望能解决。
    • 非常感谢 Aeonsleo。它可以工作,但仍然是串行的问题。可能是我无法清楚地表达我的问题。相同的金额将使用相同的序列号。
    • 我没有看到任何问题,相同的数量应该在相同的序列号中。输出应该与您在上表中指出的相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2014-08-14
    • 2017-12-10
    相关资源
    最近更新 更多